Introduction

Setup Factory 6.0

Command Reference


Introduction

What is Setup Factory?

Setup Factory is a sophisticated tool that gives you complete control over the installation process. Full-featured, fast, and easy to use, Setup Factory's intuitive design maximizes your ability to deploy software products, data files, graphic images, or anything else that you want to distribute.

Solid and Effective

Setup Factory 6.0 creates single-file, compact, bulletproof professional software installations. Its visual design environment makes it a snap to assemble your files, customize the wizard interface, add runtime support modules, and package your software for deployment via diskette, CD-ROM, LAN, email or web.

A Proud Heritage

Since its first release, Setup Factory has defined innovation in Windows based setup and installation tools. Over the years, the product line has been the recipient of numerous awards, accolades and glowing reviews.

Trusted By Professionals

Thousands of software developers trust Setup Factory to distribute their software to millions of customers and clients around the world.

While others have tried to imitate it, only Setup Factory 6.0 offers such a perfect combination of ease, flexibility and control.

See Also: Installers and Setup Files, Key Features, What's New in 6.0?


Installers and Setup Files

Installers are special self-contained executable programs designed to transport whole software products to your users and deploy them on their systems. Also known as "setup files," "setups" and "setup executables," professional installers like Setup Factory are able to fully configure the user's system to perfectly accept their software cargo.

In order to adapt to field conditions, installers must be able to accurately gather information on the software's operating environment. This can involve anything from analyzing the amount of free space available on a hard drive, to ensuring that the user's system is properly configured to accept the software being installed.

In order to support the widest possible markets, installers need to interact with users in a streamlined, sensible fashion. The best installers do this by presenting a familiar, user-friendly, wizard style interface. In the case of Setup Factory, not only is the user interface friendly and familiar, but it's fully customizable to meet any need as well.

See Also: What is Setup Factory?, Key Features, What's New in 6.0?


What's New

What's New in 6.0?

Actions

Only Setup Factory could integrate powerful scripting control into its visual design environment in such a seamless manner. While most users will never need to go beyond the visual side of Setup Factory, developers who require absolute control will appreciate the extremely flexible "Action Scripts" built into Setup Factory 6.0. Actions give you the flexibility of advanced programming, without sacrificing the ease of use that Setup Factory is famous for.

Control Structures

Build advanced looping and testing structures with actions like IF, WHILE and GOTO Label.

Variables, Expressions and Operators

Use an unlimited number of variables to store data. Throw in full expression parsing and mathematical evaluation, and you've got enough power to make your installer handle anything you throw at it!

String Functions

Parse, evaluate, manipulate and search through text files, text variables, and other strings.

Silent Installations

The /S command line option lets you perform installations without user interaction.

Download Files and Upload Data

Make it easy for your users to stay up-to-date. Built-in HTTP download and web data submission make it easy to distribute files "after the fact."

Enhanced Package Support

Package support has been completely redesigned, and sports a new, integrated design interface. By assigning files to packages, you can give your users greater control over what files are installed on their system. You can even present your users with multiple levels of control, including the standard Complete, Typical, Minimum, and Custom installation options. And there's more good news for power users: now files can be assigned to multiple packages!

File Dependency Scanning

Quickly scan Portable Executable files to analyze their runtime dependencies. With a negative import option, you can control which dependency files are added to your project.

ZIP File Extraction

Use the Unzip Files action to extract files from a Zip archive at run time.

Full Control over Windows Services

Setup Factory 6.0 adds full support for Windows services, including starting, stopping, pausing, querying, creating, continuing, and deleting them.

Full Control over Programs and Processes

With full shell execution support, starting or terminating programs and processes is a piece of cake.

Enhanced 3rd Party Runtime Support

Instantly add runtime support for many popular third-party technologies.

Enhanced Visual Basic Project Support

Core runtime support and advanced Visual Basic project file scanning make creating installers for Visual Basic applications easier than ever.

Updated Run-time Interface

The setup executable's user interface has been updated to the professional and modern "Windows Installer" style.

Design-Time Constants

Similar to variables, but instead of being converted to values at run time, design-time constants get converted at build time. Like #define statements in C++, you can use design-time constants to simplify your project management.

Enhanced Reporting and Logging Features

Keeping track of essential project details has never been easier. With customizable HTML-based project reports and text-based install-time log files, you'll have an accurate record of everything you need.

See Also: Key Features, What is Setup Factory?, Installers and Setup Files


Key Features

Award-Winning Visual Design Environment

Organize your project quickly and efficiently using Setup Factory's innovative, point-and-click development environment.

Quick and Easy Project Wizard

The Project Wizard is the fastest and easiest way to get your installation off to the right start. With the Project Wizard you'll have an installation ready to go in minutes.

Dynamic File Lists

Set up your project the way you see fit. When you're ready to build the setup executable, your project is rescanned to include the most recent versions of your files.

Flexible OS Filtering

Target multiple operating systems with one installer. Sophisticated condition and expression parsing lets you filter files and actions to specific operating systems.

Flexible Deployment Options

Distribute on any media size or format, including web, email, ftp, CD-ROM, DVD, network drive or even 1.44MB floppy disks.

Registry and System Modifications

A full suite of actions are supplied for reading and writing information to and from the Windows Registry, INI files and text configuration files.

OCX/DLL and Font Registration

Register TrueType fonts and OCX/DLL files right from your installer.

Extensive File Handling Options

Complete version checking, file searching, copying, renaming, deleting, attributes setting, and more.

International Language Support

Setup Factory has built-in handling for every language supported by Windows.

Comprehensive Operating System Support

You don't want to mess around with reliability. Your install will run on all 32 bit Windows platforms. This includes everything from Windows 95, through 98, ME, NT4, 2000 and even Windows XP.

See Also: What is Setup Factory?, Installers and Setup Files, What's New in 6.0?


Getting Started

The first step in creating a successful software installation is to plan it out.

In fact, planning your installation is one of the most important steps in designing a professional installer. Knowing what your installer needs to accomplish in advance will give you a clear goal to aim for and a solid plan to follow.

There are several things you need to know in order to create an installer:

What files do you need to distribute?

Where do your files need to be installed?

What system changes need to be made?

What information do you need from the user?


The Project Wizard

You can use the Project Wizard to walk you through the steps required to build a simple Setup Factory project.

To do so, simply select Project | Project Wizard from the menu, and follow the instructions. You can also start the Project Wizard by pressing the Project Wizard button on the Project toolbar.


What Files Do You Need to Distribute?

The first step in preparing your installation is to determine exactly what files your software requires for proper operation.

There are four basic types of files that you may need to distribute: program files, configuration files, operating system components, and shared application resources.

Program Files

Program files are the "main files" of your application. These files are essential to your application and are only useful in the context of your application. They can be executables, help files, documents, templates, or any other data files that your application requires. Program files usually make up the bulk of your software.

Configuration Files

Configuration files are used to store startup options, user settings, and other configuration options for your software. Information can be read from and written to these files during the normal operation of your application. These files are often referred to as "config" files, and come in many different formats, from traditional "INI" files (which adopt the same internal structure as Windows .ini files) to modern XML files.

Operating System Components

These files are usually included with the Windows operating system, but you may want to distribute the newest versions of certain files, or you may have developed custom system files of your own. These files are generally DLLs, OCX components, or hardware drivers like SYS files and VxDs.

Shared Application Resources

These are files that may be shared by more than one application, such as ActiveX controls, OCX components, and DLL files.

Some of the files that you need to distribute will be obvious, such as the main executable and help files. Others may be less apparent, such as DLLs and ActiveX controls installed in the Windows directories of your development system.

NOTE |
 | Many of today's development tools require that you distribute runtime support files along with your application. Please consult your development tool's documentation to determine what files you need to distribute with your software.

Often an executable in your application absolutely requires other files in order to work properly. These "absolutely required" files are known as dependency files.

Dependency Files

Dependency files are external support files that an executable requires for proper operation. In other words, they are external files that a program file "depends on" in order to function properly. Dependency files may include INI files, DLLs, ActiveX controls, OCX components, or any other support file type. Although it's generally preferable to install dependency files in the same directory as the program that needs them, they are often installed in other locations, such as the Windows system directories.

Setup Factory has a built-in dependency scanner that you can use to identify dependency files and add them to your project.

Setup Factory also provides built-in runtime support for many runtime dependency files via the Runtime Support dialog.

Preparing the Directory Structure

The ultimate goal of a good installer is to get your software onto the user's system in an easy and accurate manner. Although Setup Factory ensures both you and your users' ease of use, the accuracy of the installation itself is largely up to you. Whether your files are installed in a structure in which they can function properly depends largely on where you tell Setup Factory to install those files.

The best way to ensure an accurate installation is to prepare the software in its finished state on your development system before you begin creating the installer. This means setting up the entire directory structure and all of the file locations exactly as you want them to appear on the user's system.

The end result should be that your software is fully installed on your development system exactly as you want it installed on the user's.

Not only does this make it easy to test your software in its intended directory structure, but it also makes the process of designing the installer much quicker and easier for you. All you'll have to do is drag your application folder onto the Setup Factory project window, and the files and sub-folders will be created exactly the same on the user's system.

TIP |
 | You should fully test your software in its "final" structure before creating the installer.

See Also: Getting Started, Where Do Your Files Need To Be Installed?


Where Do Your Files Need To Be Installed?

Once you have your software organized, you need to determine exactly where each file needs to go on the user's system. Although Setup Factory does a lot of this work for you by maintaining directory structures when you add files to your project, there are still some files that may need to be directed to different locations on the user's system.

Here are some guidelines to help you determine where you should install your files on the user's system. Once again, there are four basic types of files that you may need to distribute: program files, configuration files, operating system components, and shared application resources.

Installing Program Files

Program files should be installed in a directory that the user chooses during the installation process. Throughout this manual and in the Setup Factory program, this directory is referred to as the application directory. The path to the application directory is represented by the built-in variable %AppDir%.

It's okay to install program files in sub-folders within the application directory-in fact, organizing your program files into sub-folders is a very good idea. Your files don't all have to be in the application directory itself; the folder that the user chooses can be used as a common application directory, with sub-folders for all of your program files.

If the users aren't given an opportunity to choose an installation folder, the path that you provided as the default value for %AppDir% will be used. You can provide a default path for the application directory on the Settings tab of the General Design dialog.

Installing Configuration Files

In the past, configuration files such as initialization or "INI" files were often installed in the Windows directory (%WinDir%). This is definitely not necessary or even beneficial in all cases. Unless your application shares a configuration file with other programs, it's best to install the file in the application directory along with your program files.

You should avoid installing any files in the Windows directory, or in any other folders where critical operating system files are stored, unless it is absolutely required by your application.

Installing Operating System Components

Operating system components, such as DLL or OCX files, are traditionally installed in the WINDOWS\SYSTEM directory (%SysDir%). If your application doesn't need to share these files with other applications, it's best to install them in your application directory (%AppDir%) instead.

Installing Shared Application Resources

Shared application resources, such as some ActiveX controls or DLL files, are generally installed in the WINDOWS\SYSTEM directory (%SysDir%). Keep in mind that many DLL and OCX files are COM servers, also known as "OLE components" and "ActiveX controls." As such, they will need to be registered with the operating system before they will be available for use by your application.

Setup Factory will automatically try to detect files that require registration when you add them to your project. You can also manually indicate files that you want Setup Factory to register by using the options on the Advanced tab of the File Properties dialog. And, you can use a Register File action to register a file manually at run time.

Keep in mind that some DLL and OCX files have dependency files themselves, and these dependency files need to be distributed and possibly also registered before the DLL or OCX files can be used. You should consult the documentation for your components to determine what dependencies they have.

NOTE |
 | Many OCX and DLL controls ship with a dependency file. The dependency file typically has the same filename as the control with a .DEP extension, e.g., Control.ocx would have a dependency file named Control.dep. These dependency files can be opened and viewed with a text editor (such as Notepad) and can tell you a lot about what, if any, dependencies the control may have.

You can also use Setup Factory's built-in dependency scanner to identify any dependency files your components may have.

See Also: Getting Started, What System Changes Need To Be Made?


What System Changes Need To Be Made?

The next step is to think about what, if any, changes need to be made to the user's system. This can include changes to system files (such as WIN.INI, CONFIG.SYS, SYSTEM.INI and AUTOEXEC.BAT), changes to the Registry, and even such things as installing and registering fonts. All of these changes can be handled easily using Setup Factory actions.

See Also: Getting Started, What Information Do You Need from the User?


What Information Do You Need from the User?

The final step in planning your software installation is to consider what information you will need from the user, and what information you will need from the user's system. For example, in order to personalize your software or register it to a specific user, you may want to ask the user to provide their name on a User Information screen. Or, you may want to ask the user for a serial number on a Verify Serial Number screen.

If you need to gather information from the user's system, you might be able to use a built-in variable. For example, if you want to know the user's company name, you could try using the built-in variable %RegOrganization%.

Otherwise, you can use one of several sleuth-worthy Setup Factory actions to query the Registry or investigate any other part of the user's system that the installer has access to.

See Also: Getting Started, Screens


General Design dialog

Command Reference

General Design

The General Design dialog is where you can configure general design settings for your installer.

You can access the General Design dialog by selecting Design | General Design from the menu, or by clicking on the General Design icon on the shortcut bar.

There are five tabs on the General Design dialog:

Product Info

The Product Info tab is where you can set general product information such as your Product name, Company name, and so on. These values are automatically assigned to built-in variables that you can use throughout your installation.

Settings

The Settings tab is where you can configure general installation options for your installer.

Languages

The Languages tab is where you can add language modules to your project and translate the various text messages used by your installer.

Serial Numbers

The Serial Numbers tab is where you can create, delete and modify lists of serial numbers to include in your installer.

Primer Files

The Primer Files tab is where you can edit the list of primer files that will be included in the setup executable.


General Design dialog - Product Info tab

Command Reference

Product Info

The Product Info tab is used to provide general information about your product.

General

Product Name

The name of your product. For example, "Setup Factory 6.0". The text you enter in this field will be stored in the built-in variable %ProductName%.

Product Tagline

A sub-title that is associated with your product such as a marketing slogan or further description. For example, "The Award Winning Install Builder." The text you enter in this field will be stored in the built-in variable %ProductTagline%.

Copyright Notice

A copyright notice for the product. For example, "Copyright © 2001 - Indigo Rose Corporation". The text you enter in this field will be stored in the built-in variable %Copyright%.

Company Name

The name of your company or organization. For example, "Indigo Rose Corporation". The text you enter in this field will be stored in the built-in variable %CompanyName%.

Version

The version of your product. For example, "6.0.0.0". The text you enter in this field will be stored in the built-in variable %ProductVer%.

Information URL

A URL that leads to more information about your software or company. The text you enter in this field will be stored in the built-in variable %InfoURL%.

See Also: Built-In Variables


General Design dialog - Settings tab

Command Reference

Settings

The Settings tab is used to configure general installation options for your installer.

Installation

Create an installation log file

If checked, an installation log file will be generated during the installation. The installation log file is in ASCII text format and provides information about what happened during the installation, such as which files were installed, which programs were executed, what Registry changes were made, etc. This information can be very useful if you ever need to debug an installation.

Hide action details in log file

If checked, details about the actions that are taking place during the setup will not be written to the log file. The log file will only show the type of action and the return code for each action being performed.

(More info: By default, Setup Factory writes detailed information about each action in the installation log when the Create an installation log file option is enabled. Such a detailed log can be useful when you need to debug an installation that isn't working properly on a user's system. However, if your setup executable performs actions involving sensitive data - such as submitting a serial number to a CGI program at your web site - you may prefer that these details are not written to the installation log where users will be able to access them.)

This option is only available if the Create an installation log file checkbox is checked.

Filename

The location and filename of the log file to generate. You can specify an absolute location such as C:\Temp or you can use variables to form dynamic paths such as %TempDir%\logfile.txt. Note: the log file is created at the very start of the setup, before %AppDir% has been established. You should always create your log files in a pre-existing, standard system directory such as %TempDir% or %WinDir%.

Verify archive before installing

If checked, the setup will verify that all of its data is present before continuing with the installation. This option requires that you build the setup executable as a single file. Note: You should only use this option when your setup will be downloaded from a relatively unreliable transfer source such as the Internet. There is no need to use this option for floppy or CD-ROM installs.

Run setup in silent mode

If checked, the setup executable that you build will only run in "silent mode." This means that there will be no user interaction required during the installation process. If you are performing silent installations, it is highly reccomended that you use a log file during the setup process so that you can debug the setup if problems occur.

Application title (appears in the taskbar while setup is running):

The text that will appear in the Windows taskbar for the entire time that the setup executable is running.

Progress screen image:

The default image that will appear in the top right corner of your progress screens. Progress screens appear when the setup is performing actions, installing files, configuring the system, etc.

Show Setup Factory logo on initial splash screen

If checked, the initial splash screen that appears as the setup executable is starting will show the Setup Factory 6.0 logo above the progress bar. If unchecked, the splash screen will simply have the text "Initializing Setup..." above the progress bar.

Variable Defaults

%AppDir% (Default Installation Path):

The default application directory for your installation. The text that you enter in this field will be the default value for the built-in variable %AppDir%. Unless the value in %AppDir% is overridden by a screen (such as the Select Install Folder screen) or an Assign Value action, files that have %AppDir% as their destination will be installed to this path. Note: you can use variables (such as %ProgramFiles%, %CompanyName%, %ProductName% or any others) in this field.

%SCFolderTitle% (Default Shortcut Folder):

The default Start menu folder for your install. The text that you enter in this field will be stored in the built-in variable %SCFolderTitle%. Unless the value in %SCFolderTitle% is overridden by a screen (such as the Select Shortcut Folder screen) or an Assign Value action, files that have Create shortcut in Start Menu checked on the File Properties dialog will have their shortcuts created in this folder. Note: you can use variables (such as %ProgramFiles%, %CompanyName%, %ProductName% or any others) in this field.

See Also: Built-in Variables, File Properties


General Design dialog - Languages tab

Command Reference

Languages

The Languages tab is used to add language modules to your project and to translate the various text messages used by your installer.

You can use the Languages tab to edit the text for all the messages, buttons and prompts that can appear during an installation. These "built-in" messages are stored in Setup Factory language (.lng) files.

Languages supported in setup:

This lists all the languages the are supported by the current Setup Factory project. You can select an entry in the list and press the properties button to bring up the Language Module Messages dialog.

The Languages supported in setup list has three columns:

Language

The name of the language.

Default

Whether or not the language is the default language for this project. This is set to TRUE if the language is the default language, and FALSE if it is not.

Note: There can only be one default language per setup.

Language File

The full path to the language file.


General Design dialog - Serial Numbers tab

Command Reference

Serial Numbers

The Serial Numbers tab is where you can create, delete and modify lists of serial numbers to include in your installer. These serial number lists can then be assigned to Verify Serial Number screens to control access to individual features or even the whole installation at run time.

Serial number list

The currently selected serial number list. You can use the buttons above the Serial number list field to add a new list, view the selected list's properties or remove the selected list from the project.

Serial numbers in list

The serial numbers that are included in the currently selected serial number list. You can use the buttons directly above this list to add, remove and re-order the serial numbers.

Generate

Opens the Generate Serial Number dialog which you can use to quickly generate random or sequential serial numbers.

Export

Opens a dialog that prompts you for a file name and then saves your serial number list in ASCII text format. Each serial bumber will be on its own line, followed by a carriage return-line feed pair. You can then load the passwords into your favorite text editor, spreadsheet or database. This is invaluable for maintaining and tracking customer registration numbers.

Import

Opens a dialog that prompts you for the filename of a serial number list to import. The file must be structured with one serial number per line, with a carriage return-line feed pair at the end of each line. Serial numbers must consist of standard ASCII characters and must not be longer than 100 characters.

Clear

Removes all of the serial numbers from the current serial number list.


General Design dialog - Primer Files tab

Command Reference

Primer Files

The Primer Files tab is where you can edit the list of primer files that will be included in the setup executable. The files in this list will be extracted from the setup executable before the installation process begins so they can be used at the very start of the installation process, right after the user runs the setup executable.

Any files listed in the Primer files list will be extracted immediately to the setup executable's temporary directory when the setup begins. You can access these files by using the %TempLaunchDir% built-in variable.

For example, if you added "C:\My Program\Checker.exe" to the Primer files list, you could access the Checker.exe program at the beginning of the installation by using the following path: %TempLaunchDir%\Checker.exe

See Also: Built-in Variables, Primer Files


Screens dialog - Before Installing tab

Command Reference

Before Installing

The screens on this tab will be displayed after all the files are installed onto the user's system.

Please see the Screen Index for a complete list of the available screens.


Screens dialog - After Installing tab

Command Reference

After Installing

The screens on this tab will be displayed before any files are installed onto the user's system.

Please see the Screen Index for a complete list of the available screens.


Screens dialog

Command Reference

Screens

The Screens dialog is where you can add, remove, arrange, preview, export and configure all of the screens in your Setup Factory project.

There are two tabs on the Screens dialog: the Before Installing tab, and the After Installing tab. These two tabs represent the two different times during the installation process when screens can be shown.

At run time, the screens are displayed in the same order as they're listed on these tabs.

You can access the Screens dialog by selecting Design | Screens from the menu, or by clicking on the Screens icon on the shortcut bar.

Before Installing

The Before Installing tab lists the screens that will be displayed before any files are installed onto the user's system.

After Installing

The After Installing tab lists the screens that will be displayed after all the files are installed onto the user's system.

Please see the Screen Index for a complete list of the available screens.


Actions dialog - Startup tab

Command Reference

Startup

These actions are executed at the start of the setup, before the "Before Installing" screens are displayed.

Please see the alphabetical list or the categorical list of actions for a complete list of all available actions.


Actions dialog - Before Installing tab

Command Reference

Before Installing

These actions are executed after the "Before Installing" screens are displayed, before the files are installed.

Please see the alphabetical list or the categorical list of actions for a complete list of all available actions.


Actions dialog - After Installing tab

Command Reference

After Installing

These actions are executed after the files are installed, before the "After Installing" screens are displayed.

Please see the alphabetical list or the categorical list of actions for a complete list of all available actions.


Actions dialog - Shutdown tab

Command Reference

Shutdown

These actions are executed at the end of the setup, after the "After Installing" screens are displayed.

Please see the alphabetical list or the categorical list of actions for a complete list of all available actions.


Actions dialog

Command Reference

Actions

The Actions dialog is used to define lists of actions that will be performed at run time. You can use actions to perform advanced installation tasks like manipulating variables, modifying the Registry, starting and stopping programs, and more.

Action Tabs

Each action tab corresponds to a different time during the installation process when actions can be performed.

(More info: Actions can occur at different times, or events, during the installation process. These events are represented by action tabs in the Setup Factory design environment. The four main action tabs are located on the Actions dialog itself; the others can be found on the Screen Properties and Uninstall dialogs.)

There are four action tabs on the Actions dialog:

Startup

The actions on the Startup tab are performed at the very beginning of the installation process, before any screens are displayed.

Before Installing

The actions on the Before Installing tab are performed after the "Before Installing" screens have been displayed, right before the files are installed.

After Installing

The actions on the After Installing tab are performed after the files have been installed, before the "After Installing" screens are displayed.

Shutdown

The actions on the Shutdown tab are performed at the end of the installation process, after the "After Installing" screens have been displayed.

Available Actions

Please see the alphabetical list or the categorical list of actions for a complete list of all available actions.


Package Properties dialog

Command Reference

Package Properties

On this dialog you can set or edit the properties of your packages.

Settings tab

On the Settings tab you can edit the main information regarding your packages.

Localize tab

On the Localize tab you can translate the name and description of your package into additional languages.


Package Properties dialog - Settings tab

Command Reference

Settings

Package Name

The name of the package.

Description

A brief description of the package. This is the description that will appear on the Select Packages screen at run time.

Variable

The variable that will be assigned to the current package. It will be set to TRUE if the package is going to be installed and FALSE if the package is not going to be installed.

Default Value

This option determines whether the current package will be selected or unselected by default when it is displayed on a screen.

Select TRUE if you want the package to be selected by default, or FALSE if you want to the package to be unselected by default.

(More info:The package's state can be changed during the installation (at run time) by assigning TRUE or FALSE to the package's variable with an Assign Value action. It can also can be changed as a result of user input, such as the user selecting or unselecting the package on a Select Packages screen.)


Package Properties dialog - Localize tab

Command Reference

Localize

The Localize tab is used to translate your package names and descriptions into other languages.

The main list on the screen shows all of the translations for the currently selected package.

You can add new translations for different languages by clicking the Add button. This will open the Localize Package dialog.

You can remove a translation by clicking on it and selecting the Remove button.

You can view the properties of a translation by selecting the translation and pressing the Properties button. This will open the Localize Package dialog.


Packages dialog

Command Reference

Packages

The Packages dialog is used to create and configure packages.

Package List

This is a list of all the packages that have been created for the current Setup Factory project. You can assign to files to these packages by using the File Properties dialog.

Add Button

The Add button can be used to create a new package. Pressing the Add button will open the Package Properties dialog.

Remove Button

The Remove button deletes the currently selected package.

Properties Button

The Properties button will open the Package Properties dialog for the currently selected package.

Cut Button

This will delete the currently selected package from the list and copy it to the clipboard.

Copy Button

This will copy the currently selected package from the list to the clipboard.

Paste Button

This will paste a package from the clipboard into the list.

Up Button

This will move the selected packages one position up in the package list.

Down Button

This will move the selected packages one position down in the package list.

See Also: File Properties, Screens Index, Packages


Runtime Support dialog

Command Reference

Runtime Support

NOTE |
 | Many of today's development tools require that you distribute runtime support files along with your application. Please consult your development tool's documentation to determine what files you need to distribute with your software.

Modules

All of the available runtime support modules are listed in this list. In order to add a runtime support module to your setup, simply place a check mark in the check box next to the desired module's name. You can select as many runtime modules as you like.

All of the runtime support modules you select in this list will automatically be added to your project at build time. Note that this means you will not be able to "see" the runtime module after you add it to your project; instead, the files and settings in the runtime module are added "invisibly" when the setup executable is generated.

Module Name

This is the name of the module.

You can include a module in your setup by placing a check mark in the box next to its name.

Description

This is the description associated with the module.

Size

This is the approximate size of the runtime module.

Download More Modules

The Download More Modules button can be used to check the Indigo Rose web site for additional runtime support modules.

Press the Download More Modules button to launch your default web browser and automatically open the Indigo Rose runtime support modules download page.

Details

The Details button provides easy access to the documentation for the runtime modules listed on the Runtime Support dialog.

To learn more about a particular runtime module, select it in the list and press the Details button at the bottom of the Runtime Support dialog. This will open any documentation available for the selected runtime module.

TIP |
 | If you need a runtime module that doesn't ship with Setup Factory, check the Indigo Rose web site. We will be posting new runtime modules as they become available.


Uninstall dialog - Settings tab

Command Reference

Settings

The Settings tab is used to set general configuration options for the uninstall program.

General

Include an uninstall program

If checked, the setup will automatically create an uninstall program for your software.

Control panel description:

The description that will appear in the Windows Control Panel under Add/Remove Programs. This will usually be the name of your application.

Unique registry key:

A short, unique name that will be used by Windows to identify the uninstall for your application. The name must be 20 characters or less and should not contain any spaces or punctuation. A shorthand version of your application name is a good choice.

Configuration file:

The path and filename of the uninstall configuration file to use. In most cases, the default value of "%AppDir%\irunin.ini" is fine. The only time you should need to change this value is if you will be installing multiple applications to the same directory.

Wizard image:

This is the image that will appear on the Uninstall screen.

Shortcut Icon

Create uninstall icon in shortcut folder

If checked, an uninstall icon will be created in the Start -> Programs -> Your Application Folder group.

Shortcut icon description

The description that will be used for the uninstall program in the Start menu.

Use external icon file

If checked, you can specify an alternate icon file to represent the uninstall shortcut in the Start menu.

External icon path

The path and filename of the icon to use for the uninstall program. This field is only available if Use external icon file is checked.

See Also: Built-in Variables


Uninstall dialog - Before Uninstalling tab

Command Reference

Before Uninstalling

The Before Uninstalling tab is where you can add any actions you want performed before any files are uninstalled.

See Also: How the Uninstall Works, Alphabetical List of Actions, Categorical List of Actions


Uninstall dialog - After Uninstalling tab

Command Reference

After Uninstalling

The After Uninstalling tab is where you can add any actions you want performed after the files have been uninstalled.

See Also: How the Uninstall Works, Alphabetical List of Actions, Categorical List of Actions


Uninstall dialog

Command Reference

Uninstall

The Uninstall dialog allows you to set all of your uninstall options. It has three tabs:

Settings tab

The Settings tab is used to set general configuration options for the uninstall program.

Before Uninstalling tab

The Before Uninstalling tab is where you can add any actions that you want performed before any files are uninstalled.

After Uninstalling tab

The After Uninstalling tab is where you can add any actions that you want performed after all of the files are uninstalled.

See Also: How the Uninstall Works


How the Uninstall Works

Before you add any uninstall actions, it's important to understand what the Setup Factory uninstaller automatically does for you.

By default, the uninstaller:

  • Removes all of the files that were installed by the setup executable. In other words, any files that were listed on the project window at design time are automatically removed by default.

    There are, however, two exceptions to this rule:

    If you select the Never remove option for a file, that file will not be uninstalled automatically.

    If you select the Shared/System file option for a file, that file will only be uninstalled automatically if its usage count reaches zero during the uninstall. The usage count is the number of installed programs that require access to a specific registered file. This information is stored in the Registry for all shared files so they aren't removed if they're still required by another program.

    (Both of these options are configured on the Advanced tab of the File Properties dialog.)

  • Removes any shortcuts and shortcut folders that were automatically created by the setup executable. This includes all of the shortcuts created using the Shortcut tab of the File Properties dialog. It does not include any shortcuts created using Create Shortcut actions.

  • Removes any folders automatically created by the setup executable, assuming they are empty after the automatically uninstalled files are uninstalled.

By default, the uninstaller does not:

  • Remove any Registry entries created during the installation. You will need to remove your Registry entries manually by adding Modify Registry actions to the Before Uninstalling or After Uninstalling tab.

  • Remove any shortcuts or shortcut folders created as the result of Create Shortcut actions. Only shortcuts and shortcut folders created using the Shortcut tab of the File Properties dialog are removed automatically.

  • Undo any INI file changes that were made during the installation. Since INI file changes are done with actions, you will need to use actions to undo them.

  • Undo any text file changes that were made during the installation. Like INI files, text file modifications are done with actions and undone with actions.

  • Remove files that were created by your software after installation.

  • Remove files that were manually copied to your software's application directory by the user after installation.

  • Remove files or directories that were copied, renamed, or moved during the installation. Of course, you can use the file and folder actions to make any changes you want with your uninstaller as well.

  • Undo any changes made by external programs that were called from your installer using Execute File actions.

  • Undo any changes that were made to the user's system using actions. Anything you do with actions in the installer can only be undone with actions in the uninstaller.

See Also: Uninstall dialog


File Properties - General tab

Command Reference

General

The General tab contains information about the file, and is used to control the install destination.

File Information

Name:

The name of the file. This field is read-only and is strictly for informational purposes.

Local Source:

The location of the file on your development system. This field is editable in case you move your files after adding them to the project.

Runtime Source:

The location of the file during the install, i.e. where the setup executable can find the file at run time.

If the selected file is on the Archive tab, this option is not editable and will always be "Archive". If the selected file is on the CD-ROM tab, you must specify the run-time location of the file. Remember that the CD-ROM's drive letter is represented by %SrcDrv% at design time, so to if the file will be in the root of the CD-ROM, specify "%SrcDrv%".

Date/Time:

The date and time stamp of the file. This field is read-only and is strictly for informational purposes.

Product Version:

The "product version" of the file according to the file’s resources.

Note: Generally only executables, DLLs, OCXs, and similar files contain version resource information. This field is read-only and is strictly for informational purposes.

File Version:

The "file version" of the file according to the file’s resources.

Note: Generally only executables, DLLs, OCXs, and similar files contain version resource information. This field is read-only and is strictly for informational purposes.

Size:

The size of the file in bytes. This field is read-only and is strictly for informational purposes.

Attributes:

The file's attributes. Possible attributes are Read only, Hidden, System and Archive. This field is read-only and is strictly for informational purposes.

By default, Setup Factory will maintain the file attributes when they are installed. If you need to change the installed attributes of a file, you can do so from the Advanced tab.

Destination

Install file to this location:

The directory that you want the file to be installed to on the user’s system. You can use any path-related built-in variable here by itself or in combination with a hardcoded path that you specify.

NOTE: Setup Factory will insert the correct directory here by default when you add the files to the project. Generally, you will not need to change the Install file to this location setting.

If file already exists:

The action that will be taken if a file with the same name already exists in the location we want to install to. The relative newness of the file is determined by the version resource information built into the file. If the file does not contain version information, the file's date and time will be used as the criteria. The options are:

Note: It is generally not a good idea to select "Always overwrite existing file" unless you are sure that is what you need to do. Also, do not select "Ask the user" unless you are sure that they have the knowledge to make such a decision. "Overwrite if existing file is same or older" is generally the safest and most conventional option for this situation.

Action | Description
Overwrite if existing file is same or older (Default) | If the file being installed is newer than or the same as the existing file, then overwrite the existing file.
Overwrite if existing file is older | If the file being installed is newer than the existing file, then overwrite the existing file.
Always overwrite existing file | The file being installed will always overwrite an existing file with the same name.
Never overwrite existing file | The file being installed will never overwrite an existing file with the same name.
Ask the user | The user will be asked whether or not the existing file should be overwritten.

See Also: Built-in Variables


File Properties - Shortcut tab

Command Reference

Shortcut

The Shortcut tab is used to control the creation of a shortcut for the file in the Start menu or on the desktop.

If you need more control over where the shortcuts are installed, or if you want to install multiple shortcuts for the file, you can use the Create Shortcut action.

Settings

Create shortcut in Start Menu

If checked, the file will have a shortcut created in Start menu -> Programs -> %SCFolderTitle%. The built-in variable %SCFolderTitle% is expanded at run time to represent the folder that the user wants to add the shortcuts to.

Create shortcut on Desktop

If checked, a shortcut to the file will be created on the user's desktop.

Be prudent in your use of this option. It is generally not considered good etiquette to litter the user's desktop with shortcuts. At most, limit yourself to making a shortcut for only your main program, or use a screen to ask the users whether they want any desktop shortcuts created.

Shortcut description

This is the description that will accompany the shortcut(s). By default, Setup Factory uses the filename as the description. For example, if the current filename is EDITOR.EXE, the description will be EDITOR.EXE by default. You will most likely want to change this to something more meaningful and descriptive.

Advanced

Command line arguments

Command line arguments that you want passed to the file when the user uses the shortcut to launch the file.

Icon index

The index of the icon that should be used for this shortcut. The icon will be taken from the file that you are viewing the properties for unless an alternate file is specified in External Icon Path. If there is only one icon in the file, or if you want to use the first icon found in the file, enter "0" here.

Use external icon file

If checked, you can specify an alternate icon file to use in External Icon Path. If unchecked, the icon will be taken from the file that you are viewing the properties of, or the default Windows icon for that file type if the current file does not contain an icon resource.

External icon path

The full path and filename of the icon that will be used to represent this shortcut. The file must be a valid Windows icon (.ico) file for this to work.

Working directory

The working directory for the current shortcut.

Run Mode

The run mode for the file. Choose Normal, Maximized or Minimized.

Example

To use an icon file called My Program.ico to represent your shortcut to My Program.exe:

  1. Select Edit | Add Files from the menu and add the My Program.ico file to your project. By default the icon file should be installed to %AppDir%.

  2. Select the My Program.exe file on the main screen and choose Edit | File Properties from the menu.

  3. Go to the Shortcut tab of the File Properties dialog.

  4. Turn the Use external icon file option on.

  5. Specify %AppDir%\My Program.ico as the External icon path field.

See Also: Built-in Variables


File Properties - Advanced tab

Command Reference

Advanced

The Advanced tab is used to configure several advanced file options.

Settings

Compress file

If checked, the file will be compressed when it's added to the setup executable. If unchecked, the file will not be compressed when it's added.

Turning off compression will decrease the time it takes to install the file, but will result in a larger setup. You may want to turn the compression off if you are distributing your setup on CD-ROM or over a Network where the size is not restricted or if the file is already compressed and you know that you will not be able to get much more compression out of it.

If your installer is being distributed on a very slow medium, such as floppy disks or Zip disks, it may actually be faster to leave compression on, because reading the extra data saved by compression would take more time (especially on floppies) than it does to decompress it.

Suppress "in-use" notice

If checked, a warning will not be displayed if the file is in use during installation and needs to be overwritten. Instead, the warning message will be suppressed and the install will automatically set the %DoReboot% variable to TRUE.

If unchecked, a message will appear to warn the user if the file is in use and will ask them to shut down any running programs.

Protect

If checked, the file will be extracted to a temporary location, and then copied to its final destination. This feature helps prevent the file from being corrupted if the install is aborted or if the user's system crashes midway through installing the file.

Note that this feature adds extra time to your installation, and will also increase the amount of temporary disk space required on the user's system during the installation. You should only use this feature for mission critical files, such as system files.

Create Backup

If checked, the existing file (if present) will be backed up before being overwritten during the installation. The existing file will be renamed to filename.bak. If filename.bak already exists, it will be named filename.bk1, or filename.bk2, etc. The new file will only be installed after the existing one has been backed up.

Disable CRC Check

AVAILABLE FOR FILES ON THE CD-ROM TAB ONLY. If checked, the usual CRC value integrity check will not be performed on the file during installation. In general, you should not turn this option on. The CRC checking that is performed during setup is meant to ensure that your files are properly and completely installed and are not corrupted.

The only reason to turn this option on is if the file that you are installing will change from CD-ROM to CD-ROM and you do not want to re-build the setup each time the file changes. An example of such a file would be a customized data file that changes for each of your customers.

Install-Time Attributes

This section allows you to specify the attributes of the file when it is installed on the user’s system. By default, the Use Original option will be selected. This will ensure that the file's attributes will be the same on the user’s system as on yours.

Note: Changing the file attributes in this section does not affect the file on your development system. The attributes are only applied to the file when it's installed.

Use Original

If checked, the attributes of the source file will be preserved when the file is installed. If unchecked, you must specify the attributes for the installed file.

Read-only

If checked, the file will have the read-only file attribute set when installed.

Archive

If checked, the file will have the archive file attribute set when installed.

Hidden

If checked, the file will have the hidden file attribute set when installed.

System

If checked, the file will have the system file attribute set when installed.

Uninstall

Never Remove

If checked, the file will not be removed during the uninstall process.

Shared/System file

If checked, a usage count will be kept for the file during installation and uninstallation. This feature should only be used for files that are shared by multiple programs, such as system files.

Font

Register as TrueType font

If checked, Setup Factory will attempt to automatically register and implement this file as a TrueType font during installation. This means that the font will be registered with the operating system and will be made available to the user. In order for this to work, the file must be a valid Windows .TTF file.

Font name

The name that will be entered in the registry for the TrueType font. You can click the Auto-Name button beside this field to automatically scan the file and try to determine its embedded name. If the Auto-Name returns "Unknown" then the file is most likely not a valid Windows .TTF file.

OLE/ActiveX

DLLRegisterServer

If checked, the setup program will try to register the file. This will work for controls that properly support the DLLRegisterServer interface. This option should properly register ActiveX controls (OCX) and other OLE inproc servers.

You can use the button to the right of this checkbox to test the current file and see whether it supports DLLRegisterServer.

Register TypeLib

If checked, the setup program will try to register the TypeLib file.


File Properties - Conditions tab

Command Reference

Conditions

The Conditions tab is used to specify the conditions that must be met in order for the file to be installed or included in your installation.

Run-time install condition:

The conditional expression that must resolve to TRUE in order for file to be installed.

Build

Opens the Build Expression dialog which provides a useful interface to help you build your conditional expression.

Build-time include condition:

The conditional expression that must resolve to TRUE in order for file to be included in your installation. This feature is especially useful if you want to build two or more types of installations in a single project file (e.g. an "Evaluation" and "Commercial" version).

Build

Opens the Build Expression dialog which provides a useful interface to help you build your conditional expression.


File Properties - Packages tab

Command Reference

Packages

The Packages tab is used to assign the current file to specific packages.

Belongs to packages:

A list of all available packages. In order to add the current file to a package, simply check the box beside the package. You can add the file to as many packages as you like.

The file will not be installed unless one or more of the selected packages has been "selected" to be installed. A package is "selected" to be installed when the package variable assigned to it on the Packages dialog is equal to TRUE.

See Also: Packages dialog, Packages


File Properties

The File Properties dialog is where you can view and edit the properties of a file in your project. It has five tabs: General, Shortcut, Advanced, Conditions, and Packages.

NOTE |
 | If you have more than one file selected when you select File Properties, the Multiple File Properties dialog is displayed instead.

General tab

The General tab contains information about the file, and is used to set the destination (i.e. installation) path for the file.

Shortcut tab

The Shortcut tab is where you can control the creation of a shortcut for the file in the Start menu or on the Desktop.

Advanced tab

The Advanced tab is where you can set several advanced settings for the file.

Conditions tab

The Conditions tab is where you can specify the conditions that must be met in order for the file to be installed or included in your installation.

There are two types of conditions: run-time conditions and build-time conditions.

Packages tab

The Packages tab is where you can assign the current file to one or more packages.

See Also: Multiple File Properties


Multiple File Properties - General/Shortcut tab

Command Reference

General/Shortcut

The General/Shortcut tab for the Multiple File Properties dialog combines some of the settings found on the General and Shortcut tabs of the File Properties dialog.

General

Source

The location of the files on the development system. This field is editable in case you move your files after adding them to the project.

Runtime Source

The location of the files during the install. If the currently selected files are on the Archive tab of the file list, this option is not editable and will always be "Archive". If the selected files are on the CD-ROM tab, you must specify the runtime location of the files.

Remember that the CD-ROM's drive letter will is represented by %SrcDrv% at design time, so as to ensure that the file will be in the root of the CD-ROM during install, specify "%SrcDrv%".

Install file to this location

The directory that you want the files to be installed to on the user’s system. You can use any directory-related Built-in Variable here by itself or in combination with a path that you specify.

If file already exists

The action that will be taken if a file with the same name already exists in the location we want to install to. The relative newness of the file is determined by the version resource information built into the file. If the file does not contain version information, the file’s date and time will be used as criteria. Please see the single File Properties dialog's General tab for more information.

Shortcut

Create shortcut in Start Menu

If checked, the files will have a shortcut created in Start menu -> Programs -> %SCFolderPath%. The Built-In Variable %SCFolderPath% is expanded at install time to represent the folder that the user wants to add the shortcuts to. If a file does not already have a shortcut description and you select this option, the file will use its filename as its shortcut description. You will need to go into the single File Properties dialog for each individual file after and change the Description on the Shortcut tab if you want to change from the default.

Create shortcut on Desktop

If checked, the files will have a shortcut created on the user’s Desktop. Be prudent in your use of this option. It is not generally considered good etiquette to litter the user’s desktop with shortcuts. At the most, just make a shortcut to your main program or use one of the screens to confirm that they want Desktop shortcuts created. If a file does not already have a shortcut description and you select this option, the file will use its filename as its shortcut description. You will need to go into the File Properties dialog for each individual file after and change the Description on the Shortcut tab if you want to change from the default.

See Also: Single File Properties, Built-In Variables


Multiple File Properties - Advanced tab

Command Reference

Advanced

The Advanced tab for the Multiple File Properties dialog is the same as the Advanced tab for the File Properties dialog, except that the Font section is not available.


Multiple File Properties - Conditions tab

Command Reference

Conditions

The Conditions tab for the Multiple File Properties dialog is the same as the Conditions tab for the File Properties dialog, except that two Apply method drop-down options have been added.

Apply Method

The apply method allows you to choose how you want the conditional expressions that you enter to be applied to the currently selected files.

Choose from:

  • None (leave existing conditions): This will not change the conditions for any of the currently selected files.

  • Replace existing conditions: This will replace the existing conditions for all of the currently selected files.

  • Prepend to existing conditions (AND): This will prepend the expressions to the existing conditions for all of the currently selected files, and AND them together.

  • Prepend to existing conditions (OR): This will prepend the expressions to the existing conditions for all of the currently selected files, and OR them together.

  • Append to existing conditions (AND): This will append the expressions to the existing conditions for all of the currently selected files, and AND them together.

  • Append to existing conditions (OR): This will append the expressions to the existing conditions for all of the currently selected files, and OR them together.


Multiple File Properties - Packages tab

Command Reference

Packages

The Packages tab for the Multiple File Properties dialog is the same as the Packages tab for the File Properties dialog, except that the check boxes follow the rules outlined on the Multiple File Properties dialog.


Multiple File Properties

The Multiple File Properties dialog is where you can view and edit the properties of a group of files in your project. It has four tabs: General/Shortcut, Advanced, Conditions, and Packages.

The Multiple File Properties dialog operates a bit differently from the File Properties dialog. Some of the differences are outlined below.

Text Edit Boxes

If edit boxes are filled in when you open the Multiple File Properties screen, it means that all of the selected files have the same value for that particular field. If the box is empty, it means that one or more of the files have different settings for that field.

Any changes that you make to the text field will be applied to each individual file's properties. If you leave the field blank, each file will retain its own settings for that field.

Combo Boxes

If a combo box has a value selected when you open the Multiple File Properties dialog, it means that all of the selected files had the same value selected in that combo box. If the combo box does not have a selection made, it means that one or more of the files have different values selected.

If you change the selection, the change will be applied to all of the selected files. If you leave the selection blank, all of the files will retain their original settings.

Check Boxes

Check boxes have three states - checked, unchecked and indeterminate. If a box is checked, all of the selected files will have that option checked. If a box is unchecked, all of the selected files will not have that option checked. If a box is in the indeterminate (or "grayed out") state, all of the selected files will maintain their own settings for the check box.

NOTE |
 | If you only have one file selected when you select File Properties, the File Properties dialog will be displayed instead of the Multiple File Properties dialog.

General/Shortcut tab

The General/Shortcut tab contains information about the selected files, along with their shortcut settings.

Advanced tab

The Advanced tab is where you can configure several advanced settings for the selected files.

Conditions tab

The Conditions tab is where you can specify the conditions that must be met in order for the selected files to be installed or included in your installation.

There are two types of conditions: run-time conditions and build-time conditions.

Packages tab

The Packages Tab is where you can assign the selected files to one or more packages.

See Also: File Properties


Build Expression

This dialog provides a useful interface to help you build an expression.

SEE ALSO |
? | For details on the usage and syntax of expressions, please see Chapter 15: Expressions in the User's Guide.

Expression Edit Box

This is where you will create your expression. You can either type your expression directly into this edit field, or use the GUI interface below to add items to your expression.

Built-in variables

A list of all the built-in variables. Double-click on a variable in the list to add it to your expression.

Custom variables

A list of all the custom variables currently defined in your project. Double-click on a variable in the list to add it to your expression.

See Also: Built-in Variables, Custom Variables, Variables


Preferences dialog - General tab

Command Reference

General

The General tab controls basic options for the Setup Factory design environment, such as the temporary files location, default output folder, and startup options.

Folders

Folder to store temporary build files

The folder on your hard drive where temporary files will be stored during the building process.

Default output folder for new projects:

The default output folder for all new Setup Factory projects. The output folder for the current project can be changed on the Project Settings dialog.

When Adding File to Project

These options affect what happens when new files are added to a Setup Factory project. Note: changing these options has no effect on any files that have already been added to your project.

Create shortcut for files with extensions:

If checked, any files that are added to your project and have a file extension found in this field will automatically be marked to have a shortcut created for them at run time. Note: you can turn off the Create shortcut in Start Menu option for an individual file later if you wish.

This field accepts a semi-colon delimited list of extensions. For example: "exe;hlp;chm;bat;com"

Register all TrueType .TTF files

If checked, any files that are added to your project and have the .ttf extension (i.e. a TrueType Font file) will automatically be registered and activated as fonts on the user’s system at run time.

Scan .DLL/.OCX for DllRegisterServer

If checked, any .dll or .ocx files that are added to your project will automatically be scanned to see if they support registration (i.e., whether they have the DllRegisterServer function available). If the file does support registration, the DllRegisterServer option will be checked for that file on the Advanced tab of the File Properties screen.

Interface

Sort filenames by type

If checked, the files on the Setup Factory main screen will be sorted (and therefore grouped) by their file extensions. All of the .exe files will be grouped together, for example. This can make it easier to modify the file properties for many of the same types of files at once.

Confirm before starting build process

If checked, you will be asked to confirm whether you want to start the build process before the build process begins. If unchecked, the build process will begin immediately whenever you initiate a build.

Startup

This section determines what should happen when the Setup Factory design environment is launched. Choose from:

Welcome screen

If selected, the Welcome screen will be displayed upon startup. This option is enabled by default.

Last project

If selected, the last project that you worked on will be opened at startup.

New project

If selected, a new project will automatically be created at startup.

See Also: Project Settings, File Properties


Preferences dialog - Languages tab

Command Reference

Languages

The Languages tab is used to set the list of languages that will be added by default whenever a new Setup Factory project is created.

Default Language Files

This is a list of all the language files that will be included by default in each new Setup Factory project that is created. The first language in this list will also be marked as the default language—in other words, the default language check box on the Languages tab will be selected for the first item in the Default Language Files list.


Preferences dialog - Action Tabs tab

Command Reference

Action Tabs

The Action Tabs tab controls the basic look and feel of your action lists.

Action List Colors

This section allows you to set the colors used to display actions on all action tabs.

Default command:

Sets the color used for default commands. This color is used for everything that isn't a control structure, comment or label.

Control structures:

Sets the color used for control structures. Control structure actions include IF, END IF, WHILE, END WHILE, GOTO Label and Abort.

Comments:

Sets the color used for comments.

Labels:

Sets the color used for labels.

Misc.

Indent size:

Sets the width of one level of indentation (in spaces) on your action lists.

See Also: Alphabetical List of Actions, Categorical List of Actions


Preferences dialog - Update tab

Command Reference

Update

The Update tab allows you to specify if, and how often, Setup Factory will check for a new version of itself.

Settings

Automatically check for new versions of Setup Factory

If checked, Setup Factory will automatically check for new versions of itself according to the settings below. If not, it will not automatically check for updates. If you de-select this option, make sure that you choose Help | Check for Update from the menu from time to time to ensure that you are always using the most current release of Setup Factory.

Hide the update interface until a new version is available

If checked, the process of checking for an update will be performed silently. A user interface will only be displayed when an update is available. If unchecked, the update process will always start with the Welcome screen and require your interaction.

Frequency

Check every X days

If selected, Setup Factory will check for a new version of itself every X number of days.

Check every X times the program is run

If selected, Setup Factory will check for a new version of itself every X number of times that Setup Factory is run.

Configure Connection

This button will open a Connection Settings screen where you can configure the connection settings that Setup Factory will use when it checks for updates.


Preferences dialog

Command Reference

Preferences

General tab

The General tab controls some basic features of the Setup Factory design environment, such as the temporary files location, default output folder, and startup options.

Languages tab

The Languages tab is used to set the list of languages that will be added by default whenever a new Setup Factory 6.0 project is created.

Action Tabs tab

The Action Tabs tab is where you can set the preferences for your action lists.

Update tab

The Update tab is used to set if, and how often, you want Setup Factory 6.0 to check for updates to itself.


Edit Menu

Add Files

This option will open the Add File to Project dialog, which you can use to add new files to your Setup Factory 6.0 project.

Remove Files

This will remove the currently selected file(s) from the project. If no file is selected this option will not be available.

Open File

This will open the currently selected file, using the default viewer for that type of file. If no file is selected this option will not be available.

File Properties

This will display the File Properties dialog for the currently selected file. If no file is selected this option will not be available.

Undo

Undoes the last action performed on the project. Setup Factory supports 10 levels of undo.

Redo

Redoes the last Undo action performed on the project. Setup Factory supports 10 levels of redo.

Select All

This will select all the files on current tab.

Preferences

Opens the Preferences dialog where you can configure the options that affect Setup Factory's design environment.

See Also: File Properties


Design Menu

General Design

Opens the General Design dialog, which is used to configure your product information, languages, serial numbers, and other important installation settings.

Screens

Opens the Screens dialog, which allows you to configure the screens that will be displayed by your installer at run time.

Actions

Opens the Actions dialog, where you can define lists of actions that will be performed at run time. You can use actions to perform advanced installation tasks like manipulating variables, modifying the Registry, starting and stopping programs, and more.

Package

Opens the Package s dialog, where you can define and localize your packages. Packages are usually used to group files and provide custom installation options to users.

Runtime Support

Opens the Runtime Support dialog, where you can select the runtime technologies you want to include in your project. This includes Visual Basic 5.0 and 6.0, Visual C++ 6.0, Visual FoxPro and many more.

Uninstall

Opens the Uninstall dialog, which is used to configure the uninstall routine for your installer.


Project Settings dialog - Build Settings tab

Command Reference

Build Settings

The Build Settings tab controls the basic options regarding the build process. Such options include the output settings, the Run before build options, and the Run after build options.

Output Settings

Output folder

The directory that you want to the setup executable saved to when it is finished building.

Setup file name

The name of the setup file. This can be Setup.exe, install.exe or anything else that you want.

Output file segment size

This determines the segment size of the setup executable that will be generated. Choose from:

Option | Description
Largest Possible | Setup Factory will generate the setup executable as one file.
1.44 MB Disks | Setup Factory will generate the setup executable as 1.44 MB segments suitable for copying to 1.44 MB diskettes.
74 Minute CD-ROM (650 MB) | Setup Factory will generate the setup executable as 650 MB segments suitable for copying to 74 minute CD-ROMs.
80 Minute CD-ROM (703 MB) | Setup Factory will generate the setup executable as 703 MB segments suitable for copying to 80 minute CD-ROMs.
Custom | Setup Factory will generate the setup executable as segments of the specified size in bytes.

TIP |
 | You can add, remove and modify the default segment sizes by editing the segmentsizes.ini file located in the Data sub-directory of your Setup Factory 6.0 directory.

NOTE |
 | The easiest way to prepare a floppy distribution is to build your setup executable right onto the floppies. Simply choose your floppy drive letter (e.g. "A:") as the Output folder and set the Output file segment size setting to "Largest possible." Setup Factory will automatically fill each floppy disk to its capacity and then ask for additional disks as required. Setup Factory will create a file called setup.exe on the first disk, setup.2 on the second, setup.3 on the third, etc.

Run Before Build

Run program

The fully qualified name of a file to execute before the build process begins. In other words, this is the complete drive, directory and filename of a program to run before the setup executable is generated.

Command line arguments

Any command line arguments that should be passed to the program named in the Run Program field.

Wait for program to finish running

If checked, Setup Factory will wait until after the program has finished running before it continues. If not checked, Setup Factory will simply start the program and continue with the build process.

Run After Build

Run program

The fully qualified name of a file to execute after the build process finishes. In other words, this is the complete drive, directory and filename of a program to run after the setup executable is generated.

Command line arguments

Any command line arguments that should be passed to the program named in the Run Program field.

Wait for program to finish running

If checked, Setup Factory will wait until after the program has finished running before it continues. If not checked, Setup Factory will simply start the program and continue without waiting.


Project Settings dialog - Design-time Constants tab

Command Reference

Design-time Constants

The Design-time Constants tab controls the creation and maintenance of design-time constants.

Constants list

This is a list containing all of the design-time constants in the current project. By double-clicking on an existing item, you can view/edit the item's properties.

Add

Opens the Design-time Constant Properties dialog so you can use to add a new design-time constant.

Delete

Removes the currently selected design-time constant from the Constants list.

Properties

Opens the Design-time Constant Properties dialog so you can edit the currently selected design-time constant.

Copy

Copies the currently selected design-time constant into the clipboard.

Cut

Cuts the currently selected design-time constant into the clipboard.

Cut differs from copy because it removes the currently selected item from the Constants list.

Paste

Pastes a design-time constant from the clipboard into the Constants list.

Up

Moves the selected design-time constant one position up in the Constants list.

Down

Moves the selected design-time constant one position down in the Constants list.

See Also: Built-in Variables, Design-time Constants


Project Settings dialog - Directories tab

Command Reference

Directories

The Directories tab allows you to set the base directories for the Archive and CD-ROM tabs.

Base Directory

The base directory is what Setup Factory 6.0 will substitute as %AppDir% in the destination path for your files. The base directory allows you to add files, and move entire projects, while maintaining a working directory structure.

Base directory for files added to the Archive tab

The base directory for the Archive tab.

Base directory for files added to the CD-ROM tab

The base directory for the CD-ROM tab.

See Also: Built-in Variables


Project Settings dialog

Command Reference

Project Settings

Build Settings tab

The Build Settings tab controls the basic options regarding the build process. Such options include the output settings, the Run before build options, and the Run after build options.

Design-time Constants tab

The Design-time Constants tab controls the creation and maintenance of design-time constants.

Directories tab

The Directories tab allows you to set the base directories for the Archive and CD-ROM tab, with regards to the current project.


Project Menu

Project Wizard

Starts the Project Wizard. The Project Wizard is a simple step-by-step wizard that will help you get your project going in a hurry.

Generate Report

Opens the Generator Project Report dialog. You can use this dialog to create a detailed report of all settings in your project, which you can save as an HTML file.

It is a good idea to generate and save a project report whenever you do the final build of your setup. This way you will have a detailed record of that setup executable's design. The project report is also very helpful to the Indigo Rose technical support staff if you ever need any help with your project.

Build

Selecting Build starts the build process for the current project.

Settings

Opens the Project Settings dialog, where you can set the build settings, design-time constants, and base directories for the current project.


Generate Project Report dialog

Command Reference

Generate Project Report

Report

This is a list of all available project reports. Selecting a report in this list will display a description of the report (if available) in the Description section next to the report list.

TIP |
 | You can modify any of these report templates (or even create your own) by editing the files in the C:\Program Files\Setup Factory 6.0\Report Templates folder. (Click here to open that folder if you installed Setup Factory to C:\Program Files.)

Save report file to

The full path and filename of the report file that you want to create. The report will be generated as an HTML file which can be viewed in any web browser.

Display report after generation

If checked, the project report will automatically be displayed in your default web browser after it is generated.

Print report after generation

If checked, the project report will automatically be printed through your default web browser after it is generated.


View Menu

Toolbars

Opens the Toolbars dialog which allows you to turn the various toolbars on and off, create new toolbars, and customize the existing toolbars.

Status Bar

Toggles the display of the Status bar at the bottom of the Setup Factory main screen.

Shortcut Bar

Toggles the display of the Shortcut bar.

File List -> Archive

Switches to the Archive tab of the file list on the Setup Factory main screen.

File List -> CD-ROM

Switches to the CD-ROM tab of the file list on the Setup Factory main screen.

Refresh

Refreshes the properties of all files in the project (refreshes the project window).


Tools Menu

Scan File Dependencies

Opens the Scan File Dependencies dialog, where you can scan a Portable Executable file for dependencies and add them to your project.

Scan Visual Basic Project

Opens the Scan Visual Basic Project dialog, where you can scan a Visual Basic 5.0 or 6.0 project file for dependencies and add them to your project.

Project Converter

Opens the Setup Factory Project Converter program. The Project Converter can be used to convert a Setup Factory 5.0 project file to the new Setup Factory 6.0 format.

Calculate File CRC

Opens the Calculate File CRC dialog, where you can calculate the CRC value of any file on your system. This can be useful if you are comparing CRC values during your setup.

Customize Toolbar

Opens a Customize dialog that allows you to customize the existing Setup Factory design environment toolbars and create new ones.

Assign Shortcuts

Opens the Shortcut Keys dialog, where you can assign shortcut keys to Setup Factory's menu commands.

Configure User Tools

Opens a Customize dialog that allows you to add your own tools to the Setup Factory Tools menu. For example, you could add a link to your favorite icon editor, paint program, text editor, Regedit, or any other program would be useful to you while using Setup Factory.


Scan File Dependencies

This tool can be used to scan a Portable Executable (PE) file for dependencies and add them to your Setup Factory project.

File to scan

The Portable Executable file that you want to scan.

Exclude files in negative list

If checked, dependency files that are in Setup Factory's negative file list will not be included in the dependencies list.

The negative file list is located in a file called negativelist.ini, which is located in the Data subdirectory of the Setup Factory 6.0 application directory on your hard drive. You can edit the list with a text editor if you need to add or remove negative files to suit your needs. In general, you should leave the Exclude files in negative list option enabled in order to avoid shipping core system files with your installer. Replacing core system files could damage your user's operating system.

Dependencies List

This is the large area under the The following dependency files will be added to the project when you select OK text. It lists all of the files that were determined to be dependencies of the file in the File to scan field. You can remove files from this list using the Remove button on the left hand side below the list.

Scan Now

Pressing the Scan Now button will begin scanning the selected file using the above options.

NOTE |
 | The Portable Executable file being scanned will be included in its list of dependencies so you can easily add it to your project as well.


Scan Visual Basic Project

This tool can be used to scan a Visual Basic project file for dependencies and add them to your project.

Note: Scanning your VB project file will not add the project's executable. You will have to add that file manually. The VB Project scanner will only add dependency (DLL and OCX) files.

Visual Basic Version

The version of Visual Basic that was used to create the project file you're scanning.

Project file to scan

The full path and filename of the project file to scan. Visual Basic projects have the .vbp file extension.


Help Menu

Setup Factory Help

Opens this online help file to the Contents page. This is a good option if you want to browse the help file by topic.

Check for Update

Checks the Web to see if a new version of Setup Factory is available. This feature uses Indigo Rose's TrueUpdate (TM) technology.

Setup Factory on the Web -> Home Page

This will bring you to the official Setup Factory web site.

Setup Factory on the Web -> Technical Support

Opens the online help file to the Technical Support page.

Setup Factory on the Web -> Contact

Opens the Indigo Rose Contact Information web site. Here you will find all the information necessary to contact the Indigo Rose Corporation.

Setup Factory on the Web -> Online Ordering

Connects you to the Indigo Rose web site, where you can order the commercial version of Setup Factory.

About

Opens the About dialog, which shows copyright and version information. This is where you can find out what version of Setup Factory you have.


File menu - Properties

Command Reference

Project File Properties

File Information

This is where you can view the properties of the current Setup Factory 6.0 project file. Some fields, like Description and Notes, can be edited. Other fields, like Created and File name, cannot be edited, and are displayed for informational purposes only. The fields that cannot be edited will contain "Unsaved Document" if the current project hasn't been saved yet.

These fields have no effect at run time or design time.

File name:

The full path to the Setup Factory 6.0 project file. This field cannot be edited.

Description:

This field is used to provide a brief description of the project. An example might be: "Evaluation installer for Setup Factory 6.0." This field can be edited.

Author:

The name of the project's author. This field can be edited.

Company:

The company name. This field can be edited.

Notes:

Some general notes regarding the project. An example might be: "Runtime Support for Visual Basic 5.0 has been added." This field can be edited.

File size (bytes):

The size of the project file in bytes. This field cannot be edited.

Created:

The date that the project file was created. This field cannot be edited.

Modified:

The date the project file was last modified. This field cannot be edited.


File menu - Import

Command Reference

Import Project File

Setup Factory 6.0 project file to import:

The full path to the Setup Factory 6.0 project file that you want to import. You can use the Browse button to browse for a project file.

Import file lists

If checked, Setup Factory will import the file lists from the new project file.

  • Insert before existing files: This will insert the files, that are being imported, before the files that already exist in the current project.

  • Insert after existing files: This will insert the files, that are being imported, after the files that already exist in the current project.

Import screens

If checked, Setup Factory will import the screens from the new project file.

  • Insert before existing screens: This will insert the screens, that are being imported, before the screens that already exist in the current project.

  • Insert after existing screens: This will insert the screens, that are being imported, after the screens that already exist in the current project.

Import actions

If checked, Setup Factory will import the actions from the new project file.

  • Insert before existing actions: This will insert the actions, that are being imported, before the actions that already exist in the current project.

  • Insert after existing actions: This will insert the actions, that are being imported, after the actions that already exist in the current project.

Import packages

If checked, Setup Factory will import the packages from the new project file.

  • Insert before existing packages: This will insert the packages, that are being imported, before the packages that already exist in the current project.

  • Insert after existing packages: This will insert the packages, that are being imported, after the packages that already exist in the current project.

Import uninstall action lists

If checked, Setup Factory will import the action lists from the new project file.

  • Insert before existing actions: This will insert the action lists, that are being imported, before the action lists that already exist in the current project.

  • Insert after existing actions: This will insert the action lists, that are being imported, after the action lists that already exist in the current project.

Design-time constants

If checked, Setup Factory will import the design-time constants from the new project file.

  • Insert before existing constants: This will insert the design-time constants, that are being imported, before the design-time constants that already exist in the current project.

  • Insert after existing constants: This will insert the design-time constants, that are being imported, after the design-time constants that already exist in the current project.


File Menu

New Project

Opens a new Setup Factory 6.0 project. If you have unsaved changes in your current project, you will be prompted to save them.

Open

Opens a previously saved Setup Factory project. Setup Factory 6.0 projects have the ".sf6" file extension.

Save

Saves the current project.

Save as

Saves the current project under a different name.

Properties

This opens the Project File Properties dialog, which displays information about the currently loaded Setup Factory 6.0 project.

Import > Setup Factory 6.0 Project

This opens the Import dialog, which allows you to import another Setup Factory 6.0 project file into the current project.

Recent file list

This is a list of the 4 most recently viewed Setup Factory 6.0 projects.

Exit

Exits Setup Factory 6.0. You will be prompted to save any unsaved changes in the current project.


Project Window

The project window takes up most of the main screen and contains a list of all the files that you have added to your project. From this list you can highlight specific files and view or edit their properties.

There are two tabs on the project window: the Archive tab, and the CD-ROM tab.

See Also: File Properties, Multiple File Properties


Archive Tab

The Archive tab is for files that you want compressed and stored in the setup executable. In other words, this tab is for files that will be included in your installer.

When Setup Factory builds the setup executable, it compresses all the files listed on the Archive tab and packs them right into the setup executable file. We say that these files get included in the setup archive, which is how the Archive tab was named.

See Also: CD-ROM tab


CD-ROM Tab

The CD-ROM tab is for files that you don't want compressed and stored in the setup executable. In other words, this tab is for files that will be distributed with your installer.

When Setup Factory builds the setup executable, it includes all the information it knows about the files on the CD-ROM tab, such as where the files are expected to be at run time, and where you want them to be installed to. But it doesn't actually include the files in the setup executable. Instead, you're expected to make sure that those files will be where the installer expects them to be at run time. Usually this is done by distributing the files along with the setup executable on the same CD-ROM (hence the name "CD-ROM tab").

NOTE |
 | The CD-ROM tab isn't just for files that are distributed on CD-ROMs, though. You can use it to install any external files, i.e., any files that are external to the setup executable.

See Also: Archive tab


Shortcut Bar

The shortcut bar is used to quickly access the Setup Factory design dialogs.

It's located along the left side of the main screen by default, but you can dock it along the right side or let it float above the main screen if you prefer. To move the shortcut bar when it's docked, left-click on the gripper bar at the top, hold the mouse button down, and drag the shortcut bar to the desired location. To move the shortcut bar when it's floating, drag it by the title bar instead. To return the shortcut bar to its docked position, drag it to the left or right edge of the Setup Factory main screen.

You can toggle the shortcut bar on or off at any time by selecting View | Shortcut Bar from the menu.

There are six design dialogs you can access from the shortcut bar:

General Design

The General Design dialog is used to configure your product information, languages, serial numbers, and other important installation settings.

Screens

The Screens dialog allows you to configure the screens that will be displayed by your installer at run time.

Actions

The Actions dialog is used to define lists of actions that will be performed at run time. You can use actions to perform advanced installation tasks like manipulating variables, modifying the Registry, starting and stopping programs, and more.

Packages

The Packages dialog is used to define and localize packages. Packages are usually used to group files and provide custom installation options to users.

Runtime Support

The Runtime Support dialog allows you to select the runtime technologies you want to include in your project. This includes Visual Basic 5.0 and 6.0, Visual C++ 6.0, Visual FoxPro and many more.

Uninstall

The Uninstall dialog is where you can configure the uninstall routine for your installer.

TIP |
 | You can also access these dialogs at any time from the Design menu.


Screen Properties - Abort Install

Command Reference

Abort Install

If the Abort Install screen is displayed, the setup will abort. Make sure you set the screen condition for this screen so it will only appear if your criteria are satisfied.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Close button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Check Boxes 12

Command Reference

Check Boxes 12

This screen can display up to 12 checkbox options. The value of each checkbox will be assigned to the variable of your choice.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Finished - Side Banner

Command Reference

Finished - Side Banner

This screen is typically used as the very last screen shown after all the files are installed. A banner image will be displayed on the left side of the screen.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Finish button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Finished - Top Banner

Command Reference

Finished - Top Banner

This screen is typically used as the very last screen shown after all the files are installed. A banner and small image will be displayed on the top of the screen.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Finish button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - License Agreement

Command Reference

License Agreement

This screen displays a license agreement in a scrolling text box. The user must select the "I Agree" radio button to continue; otherwise, the setup will abort.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - List Box

Command Reference

List Box

This screen displays an unlimited number of options in a scrollable list box. The user must select at least one option before continuing. The text of the selected item will be stored in the variable of your choice. If enabled, multiple selections can be stored in the variable in the form of a semi-colon delimited list. The list of options can be provided dynamically at run time by using a variable that contains a delimited list of items.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Edit Boxes

Command Reference

Edit Boxes

This screen can display up to 4 edit box fields with data validation and optional browse buttons. The text entered in each field will be assigned to the variable of your choice.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Radio Buttons 12

Command Reference

Radio Buttons 12

This screen can display up to 12 radio button options. The buttons are mutually exclusive - the user may select only one of them. Both the zero-based index and the text value for the selected radio button will be stored in the variable of your choice.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Ready to Install

Command Reference

Ready to Install

This screen is typically used to give the user a chance to go back and make changes or abort before actually installing files. The Next button will begin the installation.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Reboot System

Command Reference

Reboot System

This screen will only appear if the system needs to be rebooted to complete the installation and will give the user the choice to do so.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Finish button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Scrollable Text

Command Reference

Scrollable Text

This screen contains a single text box that is typically used for displaying instructions, read-me messages, important notes, etc.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Select Drive

Command Reference

Select Drive

This screen allows the user to select which drive they want to install your product on.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Select Install Folder

Command Reference

Select Install Folder

This screen asks the user what directory to install the files to. Normally used to set the built-in variable %AppDir%.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Select Install Type

Command Reference

Select Install Type

This screen offers the user a choice of installation types, such as Typical, Complete, Minimum, and Custom.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Select Packages

Command Reference

Select Packages

This screen presents a list of packages for the user to select from. You can edit the list of available packages using the Packages dialog.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Select Shortcut Folder

Command Reference

Select Shortcut Folder

This screen asks the user what folder on their Start menu they want the shortcut icons created in. Normally used to set the %SCFolderPath% and %SCFolderTitle% variables.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Static Text

Command Reference

Static Text

This screen contains a single text box that can be used to convey information to the user. This screen is typically used to display short, single-screen instructions.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - User Information

Command Reference

User Information

This screen asks the user for their name and company name. The results are stored in custom variables named %UserName% and %UserCompany% by default.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Verify Serial Number

Command Reference

Verify Serial Number

This screen requires the user to enter a valid serial number before continuing.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Welcome - Side Banner

Command Reference

Welcome - Side Banner

This screen can be used to display a standard greeting message. A banner image will be displayed on the left side of the screen.

This screen is typically used as the very first screen in an installer, so the Back button on this screen has been hidden by default.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screen Properties - Welcome - Top Banner

Command Reference

Welcome Screen - Top Banner

This screen can be used to display a standard greeting message. A banner and small image will be displayed on the top of the screen.

This screen is typically used as the very first screen in an installer, so the Back button on this screen has been hidden by default.

Settings tab

The Settings tab is where you can configure general settings for this screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether this screen will be displayed at run time.

Custom tab

The Custom tab is where you can configure the settings that are specific to this screen.

Before tab

The Before tab is where you can list the actions that will be performed before this screen is displayed.

This occurs after the screen condition is evaluated to a TRUE result. If the screen condition evaluates to FALSE , the actions on the Before tab will not be performed.

After tab

The After tab is where you can list the actions that will be performed after this screen is displayed. This typically occurs after the user presses the Next button on this screen.

See Also: Screen Index, Screens, Screen Properties


Screens

Screens make up the visual user interface of your installer. They're what the user sees and interacts with throughout the installation process.

You can use screens to display information to the user, and you can use them to get information from the user as well.

The screens in Setup Factory use a familiar "wizard" style. Each screen either has an image on the left-hand side, with text and options on the right, or a banner along the top, with text and options below. The bottom of the screen has a combination of buttons like Next, Back, Finish, and Cancel, depending on the screen.

See Also: Screens dialog


Screen Index

Abort Install

If this screen is displayed, the setup will abort. Make sure you set the screen condition for this screen so it will only appear if your criteria are satisfied.

Check Boxes 12

A screen with up to 12 checkbox options. The value of each checkbox will be assigned to the variable of your choice.

Finished Screen - Side Banner

This screen is typically used as the very last screen shown after all the files are installed. A banner image will be displayed on the left side of the screen.

Finished Screen - Top Banner

This screen is typically used as the very last screen shown after all the files are installed. A banner and small image will be displayed on the top of the screen.

License Agreement

Displays a license agreement in a scrolling text box. The user must select the "I Agree" radio button to continue; otherwise, the setup will abort.

List Box

Displays an unlimited number of options in a scrollable list box. The user must select at least one option before continuing. The text of the selected item will be stored in the variable of your choice. If enabled, multiple selections can be stored in the variable in the form of a semi-colon delimited list. The list of options can be provided dynamically at run time by using a variable that contains a delimited list of items.

Edit Boxes

A screen with up to 4 edit box fields with data validation and optional browse buttons. The text entered in each field will be assigned to the variable of your choice.

Radio Buttons 12

A screen with up to 12 radio button options. The buttons are mutually exclusive - the user may select only one of them. Both the zero-based index and the text value for the selected radio button will be stored in the variable of your choice.

Ready to Install Screen

Typically used to give the user a chance to go back and make changes or abort before actually installing files. The Next button will begin the installation.

Reboot System

This screen will only appear if the system needs to be rebooted to complete the installation and will give the user the choice to do so.

Scrollable Text

Contains a single text box that is typically used for displaying instructions, read-me messages, important notes, etc.

Select Drive

Allows the user to select which drive they want to install your product on.

Select Install Folder

Asks the user what directory to install the files to. Normally used to set the built-in variable %AppDir%.

Select Install Type

Use this screen to offer a choice of installation types, such as Typical, Complete, Minimum, and Custom.

Select Packages

Use this screen to presents a list of packages for the user to select from. You can edit the list of available packages using the Packages dialog.

Select Shortcut Folder

Asks the user what folder on their Start menu they want the shortcut icons created in. Normally used to set the %SCFolderPath% and %SCFolderTitle% variables.

Static Text

Contains a single text box that can be used to convey information to the user. This screen is typically used to display short, single-screen instructions.

User Information

Ask the user for their name and company name. The results are stored in custom variables named %UserName% and %UserCompany% by default.

Verify Serial Number

Use this screen to verify a serial number/password before continuing. Note: you will also need to create a serial number list and populate it using the Serial Number tab on the General Design dialog.

Welcome Screen - Side Banner

Use this screen to display a standard greeting message. A banner image will be displayed on the left side of the screen.

This screen is typically used as the very first screen in an installer, so the Back button on this screen has been hidden by default.

Welcome Screen - Top Banner

Use this screen to display a standard greeting message. A banner and small image will be displayed on the top of the screen.

This screen is typically used as the very first screen in an installer, so the Back button on this screen has been hidden by default.


Screen Conditions

A screen condition is simply a conditional expression that determines whether a screen will be hidden or displayed at run time. If the expression is blank, or evaluates to a true result, the screen will be shown. If the expression evaluates to a false result, the screen will not be shown.

You can view or edit the screen condition for a screen on the Settings tab of the Screen Properties dialog.


Action Properties - Abort

Command Reference

Abort

Aborts the setup process. Has the same effect as the user pressing the Cancel button.

Action ID: 22
Action Category: Control Structures

Settings

None.

Return Values

None.

Example

Not applicable.

See Also: Alphabetical List of Actions, Categorical List of Actions


Action Properties - Assign Value

Command Reference

Assign Value

Assigns a value (or the result of an expression) to a variable.

Action ID: 14
Action Category: Variables

Settings

Variable name

The name of the variable to store the result in. If the variable does not already exist, it will be created automatically.

(More info: If you provide the name of an existing variable, the result will overwrite that variable's contents. If you provide a new variable name, a new variable will be created automatically. The action's result will be stored in the variable you provide, regardless of whether the variable already exists. In other words, you can create a new variable "on the fly" by simply providing a variable name that isn't already being used in your project.)

Value

The value to assign to the variable.

Evaluate value as expression

If checked, the text in Value will be interpreted as an expression at run time, and the result of this expression will be stored in the variable.

See the User's Guide for details on expression usage and syntax.

Build...

Opens the Build Expression dialog which provides a useful interface to help you build the expression.

NOTE |
 | The Build button is only visible if the Evaluate value as expression checkbox is checked.

SEE ALSO |
? | For more information on expressions, see Chapter 2: Key Concepts and Chapter 15: Expressions in the User's Guide.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Error evaluating expression. | Missing value. A value was expected at position <<Start position of error>>. <<Expression>>
2 | Error evaluating expression. | Missing operator before open parenthesis. There is an operator missing before the open parenthesis at position <<Start position of error>>. <<Expression>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Blank Line

Command Reference

Blank Line

Allows you to insert a blank (empty) line into your action list. Blank Line actions have no effect at run time.

Action ID: (none)
Action Category: Control Structures

Settings

Not applicable.

Return Values

None.

Example

Not applicable.

See Also: Alphabetical List of Actions, Categorical List of Actions


Action Properties - Call DLL Function

Command Reference

Call DLL Function

This action will run a function from a dynamically linked library (DLL). It can be used to extend Setup Factory's functionality with your own functions.

Caution: Calling DLLs is a fairly advanced thing to do and writing DLLs is best done with C or C++. We have tried to provide a large range of functionality with Setup Factory, so there are not many reasons to use external DLL calls. Make sure that you know exactly what paremeters the DLL function you are calling takes. Providing too many or not enough parameters can corrupt the running setup executable's memory so please do so at your own risk.

Action ID: 77
Action Category: Open/Close Programs

DLL Information

DLL file name:

The full path and file name of the DLL file that you want to call.

Function name:

The name of the function that you want to call in the DLL.

Function parameters:

A list of parameters that you want to pass to the function. These parameters should be comma-separated.

Parameters that you want passed as NULL-terminated string pointers should have double quotes around them. Parameters without quotes will be passed as LONG integers.

All parameters are one-way only - they can be passed into the DLL function, but they cannot be evaluated after the function has been called. (In other words, these parameters are pass-by-value, not pass-by-reference.)

Return value type

The return value type of the function. Choose from Int, Long or String. This field tells the setup how to interpret the value returned from the function. If the function that you're calling does not return a value (i.e., the function returns void), use Long as the Return value type.

Variable

Store return value in variable:

The name of the variable that will store the value returned from the function.

Default value:

The default value to store in the variable in case the function call fails.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to call DLL function. | Could not load DLL. <<DLL file name>>
2 | Failed to call DLL function. | Could not find function. <<DLL file name>> <<Function name>>

Example

In this example we will use the Windows API to display a "Retry/Cancel" message box.

DLL file name: %SysDir%\User32.dll
Function name: MessageBoxA
Function parameters: 0,"This is my message.","Title",5
Return value type: Long
Store return value in variable: %MessageBoxResult%
Default value: 0

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Check Internet Connection

Command Reference

Check Internet Connection

This action will check the user's system to see if they are connected to the Internet. It does this by silently trying to connect to a specific Web site.

Action ID: 55
Action Category: Internet

Settings

Internet Connection

Variable:

The name of the variable to store the result in. The result will be "TRUE" if the user's system is connected to the Internet and "FALSE" if it is not.

Site to connect to:

The name of a site to test the Internet connection on. Use just the domain name of the site without http:// in front of it. For example, use "indigorose.com", not "http://www.indigorose.com". The setup will try to connect to the site listed here over port 80. It is a good idea to use a site that you will actually be downloading from or submitting to during the setup.

Return Values

None.

Example

In this example, we'll check to see if the user's system is connected to the Internet and store the result in our %IsConnected% variable.

Variable: %IsConnected%
Site to connect to: arstechnica.com

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Close Program

Command Reference

Close Program

Locates and closes a running program.

Action ID: 6
Action Category: Open/Close Programs

Settings

Look For

Select the method to use in order to determine whether or not the program is running:

Full path and file name

The Name field specifies the full path and filename of the program to find (e.g. "C:\Program Files\Setup Factory 6.0\SUF60Design.exe").

File name only

The Name field specifies only the filename of the program to find (e.g. "SUF60Design.exe").

Window title

The Name field identifies the title of the Window that should be closed (e.g. "Untitled - Setup Factory 6.0").

Name

The full path and filename, filename only, or window title of the program to look for. (The meaning depends on which Look for option is selected.)

If Program is Running

Select the action to be taken if Setup Factory determines that the program is running:

Send it a close message

Send the program a WM_CLOSE message. This allows the program to end in the usual fashion. This is exactly like selecting Close in the title bar menu of the program's window, or using the Alt-F4 hotkey to close the program.

Force immediate termination

Immediately terminate the program's process. The state of global data maintained by the program's dynamic-link libraries (DLLs) may be compromised if this option is used. (When this option is selected, the setup executable calls the Windows API function "TerminateProcess" to immediately terminate the specified program.)

Tell the user to close the program

Display a "Retry/Cancel" message box that tells the user to manually shut down the program. The user must close the specified program manually and then click the Retry button to continue with the installation.

When this option is selected, the Program Description field is enabled so a user-friendly description of the program can be provided.

Program description

Allows you to provide a user-friendly name for the program that needs to be closed. Use a name or description that will be more helpful to the user than the program's filename or window title.

Program must be closed for setup to continue

Determines whether the program must be closed in order for the setup to continue.

If selected, this action will fail if the program is not closed successfully.

If unselected, the action will not fail. Even if the program isn't closed, the setup will proceed normally.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to close program. | <<Name>>

Examples

Example 1

In this example we will close Notepad if it is running on the user's system.

Look for: File name only
Name: Notepad.exe
If Program is Running: Send close message
Program must be closed to continue: TRUE

Example 2

In this example we will see if Notepad is running on the user's system, and we will ask that the user close Notepad before they continue with the installation.

In this case, if the user chooses to leave Notepad running, we'll let the installation continue.

Look for: File name only
Name: Notepad.exe
If Program is Running: Tell the user to close the program
Program description: Notepad
Program must be closed to continue: Unchecked

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Comment

Command Reference

Comment

Allows you to insert a comment into your action list. Comments have no effect at run time.

Action ID: (none)
Action Category: Control Structures

Settings

Comment

The comment that will be added to your action list.

Return Values

None.

Example

Not applicable.

See Also: Alphabetical List of Actions, Categorical List of Actions


Action Properties - Continue Service

Command Reference

Continue Service

Tells a Windows service to continue running after it has been paused.

NOTE: This action only works on Windows NT/2000/XP and has no effect on Windows 9x/ME. For more information about services, please read a book on the subject or search for more information online. You should not haphazardly experiment with the services on your or anyone else's system as this could cause major problems with the operating system. The service actions were put into this product for those who know how to use them and require their functionality.

Action ID: 59
Action Category: Services

Settings

Display Name

Find service by display name:

If checked, the service will be located by its display name.

Display name:

The display name that will be used in order to find the service if Find service by display name is checked.

Key Name

Find service by key name:

If checked, the service will be located by its key name.

Key name:

The key name that will be used in order to find the service if Find service by key name is checked.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to continue service. | Iterate services failed. <<Display Name>> <<Key Name>>
2 | Failed to continue service. | Query service failed. <<Display Name>> <<Key Name>>
3 | Failed to continue service. | Service not found. <<Display Name>> <<Key Name>>
4 | Failed to continue service. | Command failed. <<Display Name>> <<Key Name>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Copy Files

Command Reference

Copy Files

Copies files on the local system.

Action ID: 7
Action Category: File Operations

Settings

Locations

Source

The path and filename to copy from (this can include the wildcards "*" and "?").

Destination

The destination directory and/or file. Do not use wildcards in this field.

Note: The destination directory MUST already exist when performing this action. If Destination specifies a path to a file, all of the folders included in the path must already exist. You can use a Create Directory action to create a destination directory if necessary.

Options

Recurse subdirectories

If checked, the copy command will recurse through subdirectories when a wildcard is used in the Source field.

Overwrite existing files

If checked, existing destination files will be overwritten by source files. If unchecked, destination files will not be overwritten by source files.

Continue copying files even if one or more fail

If checked, the copy operation will continue even if some files fail to copy. If unchecked, the copy operation will stop as soon as the first error occurs.

Copy hidden and system files

If checked, files which have the "hidden" or "system" attributes set will be copied. If unchecked, hidden and system files will not be copied.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not copy file(s). | Invalid source specified. <<Source>>
2 | Could not copy file(s). | Invalid destination specified. <<Destination>>
3 | Could not copy file(s). | File not found. <<Source>>
4 | Could not copy file(s). | The specified path was not found. <<Destination>>
5 | Could not copy file(s). | One or more files could not be copied. <<Comma separated list of files that could not be copied>>

Examples

Example 1

In this example we will copy a file called "setup.exe" from the "download" subdirectory to the user's temporary directory.

Source: %SrcDir%\download\setup.exe
Destination: %TempDir%

Example 2

In this example we will copy all the files from the "download" subdirectory to the user's temporary directory.

Source: %SrcDir%\download\*.*
Destination: %TempDir%

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Count Delimited Strings

Command Reference

Count Delimited Strings

This action will count the number of strings, delimited by a certain delimiter, in a given string. The result will be stored in a supplied variable.

Action ID: 70
Action Category: Strings

Settings

Store result in variable:

The name of the variable to store the number of strings in.

Source string:

A string containing a delimited list.

Delimiter:

The character(s) that delimit the items in the delimited list.

Return Values

None.

Example

To find out how many delimited items are in the list of names "Brett,Lorne,Colin,Adam,Sandy,Mark,Darryl,Ted", use the following data:

Store result in variable: %NumberOfNames%
Source string: Brett,Lorne,Colin,Adam,Sandy,Mark,Darryl,Ted
Delimiter: ,

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Count Text Lines

Command Reference

Count Text Lines

This action will count the number of lines in a text file. A line is defined as a string of ASCII text followed by a carriage return-line feed pair.

Action ID: 42
Action Category: Text Files

Settings

File name:

The full path and filename of the text file whose lines you wish to count.

Default value:

The default value to store in your variable in case the number of lines cannot be counted.

Store line count in variable:

The variable that will store the number of lines in the text file.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to count text lines. | File not found. <<File name>>
2 | Failed to count text lines. | Error opening file. <<File name>>
3 | Failed to count text lines. | The file is too large to be read <<File name>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Create Directory

Command Reference

Create Directory

Creates a directory (or "folder") on the local system.

Action ID: 9
Action Category: Folders

Settings

Directory (folder) name

The path of the directory to create.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not create directory. | <<Destination>>

Example

In this example we will create a new folder named "Images" on the user's hard drive. "Images" will be created in the main application directory of our product.

Directory (folder) name: %AppDir%\Images

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Create Service

Command Reference

Create Service

Create a service on the local system.

NOTE: This action only works on Windows NT/2000/XP and has no effect on Windows 9x/ME. For more information about services, please read a book on the subject or search for more information online. You should not haphazardly experiment with the services on your or anyone else's system as this could cause major problems with the operating system. The service actions were put into this product for those who know how to use them and require their functionality.

Action ID: 63
Action Category: Services

Settings

Service

File name:

The fully qualified path to the service binary file.

Display name:

The localizable string that user interface programs use to identify the service. The string has a maximum length of 256 characters. The service control manager preserves the case of the display name, but display name comparisons are case insensitive.

Key name:

The string that gives the service name to install. The string has a maximum length of 256 characters. The service control manager database preserves the case of the characters in the service name, but comparisons of service names are case insensitive. Forward slashes (/) and backslashes (\) are invalid service name characters.

Start name:

The name that the service will be logged on as. If the service type is SERVICE_WIN32_OWN_PROCESS use an account name in the form: DomainName\UserName. If the account belongs to the built-in domain it is permitted to specify .\UserName. The LocalSystem account must be used if the type of service is SERVICE_WIN32_SHARE_PROCESS. To specify the LocalSystem account to Setup Factory, use "LocalSystem" (no quotes) or just leave this field blank (recommended).

Password:

The password for the account name in the Start name field. The service will have no password if Start name is empty. The start name of LocalSystem is NULL, and therefore the password for Start name in this instance is empty, so most services will leave this field blank.

Type Information

Service type:

Type of service. You must specify one of the following service types:

SERVICE_WIN32_OWN_PROCESS - Specifies a Win32-based service that runs in its own process.

SERVICE_WIN32_SHARE_PROCESS - Specifies a Win32-based service that shares a process with other services.

SERVICE_KERNEL_DRIVER - Specifies a driver service.

SERVICE_FILE_SYSTEM_DRIVER - Specifies a file system driver service.

If you specify either SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS, you can also optionally specify the Allow desktop interaction option below.

Allow desktop Interaction:

Enables a Win32-based service process to interact with the desktop. Valid only when SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS is specified as the Service type.

Start type:

Specifies when to start the service. You must specify one of the following start types:

SERVICE_BOOT_START - Specifies a device driver started by the system loader at the earliest possible point in the system boot process. This value is valid only for driver services, and is usually reserved for very low-level device drivers that deal with key operating system components, such as file system drivers.

SERVICE_SYSTEM_START - Specifies a device driver started by the IoInitSystem function, which is called during the second part of the boot process known as the "System" phase. This value is valid only for driver services. (Most device drivers start during the System phase.)

SERVICE_AUTO_START - Specifies a service to be started automatically by the service control manager during the final part of the system boot process, known as the "Auto" phase. (This happens about the same time as you see the Windows logon screen.)

SERVICE_DEMAND_START - Specifies a service to be started on demand by the service control manager when a process calls the Start function.

(More info: This is the same as setting a service's start type to "Manual" in the Microsoft Management Console. Users can start services manually by using the NET START command, or by using the Microsoft Management Console.)

SERVICE_DISABLED - Specifies a service that can no longer be started.

Error control:

Specifies the severity of the error if this service fails to start during startup, and determines the action taken by the startup program if failure occurs. You must specify one of the following values.

SERVICE_ERROR_IGNORE - The startup program logs the error in the system's event log and continues with system startup. (Services that are started on demand should always have Error control set to SERVICE_ERROR_IGNORE.)

SERVICE_ERROR_NORMAL - The startup program logs the error in the system's event log, puts up a message box to alert the user about the error, and continues with system startup.

SERVICE_ERROR_SEVERE - The startup program logs the error in the system's event log. If the last-known-good configuration is being started, the startup operation continues. Otherwise, the system is automatically restarted with the last-known-good configuration.

SERVICE_ERROR_CRITICAL - The startup program logs the error in the system's event log (if possible). If the last-known-good configuration is being started, the startup operation fails. Otherwise, the system is automatically restarted with the last-known good configuration.

Groups

Load order group:

The name of the load ordering group of which this service is a member. Leave this field empty if the service does not belong to a group.

(More info: The load order group is used to determine when a service or device driver is loaded relative to other services that have the same start type, i.e. that are set to load during the same phase of the system boot process. For more information on the various load order groups, consult the Windows DDK documentation.)

Dependencies (';;' deliminated list):

A double-semi-colon delimited list of names of services or load order groups that the system must start before this service. Leave this field empty if the service has no dependencies. Dependency on a group means that this service can run if at least one member of the group is running after an attempt to start all members of the group.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to create service. | Iterate services failed. <<Display Name>> <<Key Name>>
2 | Failed to create service. | Query service failed. <<Display Name>> <<Key Name>>
3 | Failed to create service. | Command failed. <<Display Name>> <<Key Name>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Create Shortcut

Command Reference

Create Shortcut

Creates a shortcut on the local system.

Action ID: 50
Action Category: Shortcuts

Settings

Locations

Folder

The path to the folder where the shortcut will be created. Usually you will use %SCFolderPath% as the folder. %SCFolderPath% is the start menu folder that the user chooses to install your product's shortcuts to. Other commonly used shortcut folders include %Desktop%, %DesktopNT%, %StartMenu%, or %StartMenuNT%. See the Built-in Variables topic for more information about these variables.

Shortcut description

The description that will appear with the shortcut.

Target file

The full path to the file that this shortcut will "point" to.

Options

Command line arguments

Command line arguments that you want to pass to the Target File.

Working directory

The working directory for the program named in Target File. If you do not specify a working directory, it will be the same as the target file’s directory.

Icon Index

The index of the icon that should be used for this shortcut. The icon will be taken from the file specified in Target File unless an alternate file is specified in External Icon Path. If there is only one icon in the file, or if you want to use the first icon found in the file, enter "0" here.

Use external icon

If checked, you can specify an alternate icon file to use in External Icon Path. If unchecked, the icon will be taken from the Target File. If Target File does not contain an icon the default icon for that file type on the system will be used.

External icon path

The full path to the file that contains the icon you want to use to represent this shortcut. In most cases, this will be exactly the same as the information in Target File, however you are free to specify an alternate icon file. The file must contain a valid Windows .ICO file for this to work.

Run mode

The run mode for the file. Choose Normal, Maximized or Minimized.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) | OK |
1 | Failed to create shortcut. | Unable to create local directory. <<Folder name>>
2 | Failed to create shortcut. | The shortcut could not be created by the system. <<SC Folder\Description>> <<Target file>>

Example

To create a Shortcut command that places a shortcut to your program on the Windows desktop:

Folder: %Desktop%
Shortcut Description: My Program
Target File: %AppDir%\My Program.exe
Windows NT/2000: Current user group
Command Line Arguments:
Icon Index: 0
Use external icon file: Unchecked
External Icon Path: N/A
Working Directory: %AppDir%
Run Mode: Normal

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Delete File on Reboot

Command Reference

Delete File on Reboot

Tells Windows to delete a file the next time that the system is rebooted. This is only necessary if you know that the file is in use during the setup process and cannot therefore be removed at that time.

Action ID: 75
Action Category: Reboot

Settings

File to delete

The path and file name of the file that you would like to delete.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) | OK |
1 | Failed delete file on reboot command. | Could not set value. <<File to delete>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Delete Files

Command Reference

Delete Files

Deletes files from the local system.

Action ID: 8
Action Category: File Operations

Settings

Location

Source

The path and file name of the files to delete (this can include the wildcards "*" and "?").

Options

Recurse subdirectories

If checked, the delete command will recurse through subdirectories when a wildcard is used in the Source field.

Continue deleting files even if one or more fail

If checked, the delete operation will continue even if some files fail to be deleted. If unchecked, the delete operation will stop as soon as the first error occurs.

Delete hidden and system files

If checked, files with the "hidden" or "system" attributes set will be deleted. If unchecked, hidden and system files will not be deleted.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not delete file(s). | Invalid source specified. <<Source>>
2 | Could not delete file(s). | One or more files could not be deleted. <<Comma separated list of files that could not be deleted>>

Examples

Example 1

In this example, we will delete a file called "mycontrol.dll" from the user's system directory.

Source: %SysDir%\mycontrol.dll

Example 2

In this example, we will delete all files and subfolders of the "backup" subfolder in the main program directory.

Source: %SrcDir%\backup\*.*
Recurse subdirectories: Checked

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Delete Service

Command Reference

Delete Service

Deletes a service from the service database.

The Service Control Manager deletes the service by deleting the service key and its subkeys from the registry. This action does NOT delete the actual binary executable of the service from the system.

NOTE: This action only works on Windows NT/2000/XP and has no effect on Windows 9x/ME. For more information about services, please read a book on the subject or search for more information online. You should not haphazardly experiment with the services on your or anyone else's system as this could cause major problems with the operating system. The service actions were put into this product for those who know how to use them and require their functionality.

Action ID: 60
Action Category: Services

Settings

Display Name

Find service by display name:

If checked, the setup will attempt to find the service by it's display name.

Display name:

The display name that the setup will use in order to find the service if Find service by display name is checked.

Key Name

Find service by key name:

If checked, the setup will attempt to find the service by it's key name.

Key name:

The key name that the setup will use in order to find the service if Find service by key name is checked.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to delete service. | Iterate services failed. <<Display Name>> <<Key Name>>
2 | Failed to delete service. | Query service failed. <<Display Name>> <<Key Name>>
3 | Failed to delete service. | Service not found. <<Display Name>> <<Key Name>>
4 | Failed to delete service. | Command failed. <<Display Name>> <<Key Name>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Delete Text Line

Command Reference

Delete Text Line

This action will delete a specified line of text from a text file.

Action ID: 43
Action Category: Text Files

Settings

File name:

This is the full path and filename of the text file.

Line number:

The is the zero-based line number of the line of text that you wish to delete.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to delete text line. | File not found. <<File name>>
2 | Failed to delete text line. | Error opening file. <<File name>>
3 | Failed to delete text line. | The file is too large to be read <<File name>>
4 | Failed to delete text line. | Line number is out of range. <<Line number>>
5 | Failed to delete text line. | Could not write to text file. <<Line number>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Download File HTTP

Command Reference

Download file HTTP

Downloads a file from a web site using the HTTP protocol.

Action ID: 2
Action Category: Internet

Settings

Location/Connection

URL (host name, directory and file name)

The full URL of the file to download (e.g. "http://www.yoursite.com/yourdir/extras.exe").

Local download folder

The local folder that you want to download the file to (on the user's system).

Connection timeout (secs)

The connection timeout in seconds for communication between the setup executable and the HTTP site.

Port

The port to connect to on the HTTP server. The standard HTTP port 80 is used by default.

Download Verification

Verify file size

If selected, the client will verify the size of the downloaded file once the download is complete. If the size of the downloaded file doesn't match the size in the File size (bytes) field, this action will generate an error (error # 13).

File size (bytes)

The size of the original file in bytes.

Verify file CRC

If selected, the setup executable will verify the CRC value of the downloaded file once the download is complete. If the CRC value of the downloaded file doesn't match the value in the File CRC field, this action will generate an error (error # 14).

File CRC

The CRC value of the original file.

Authentication

This section allows you to specify a user name and password if the URL is protected by basic HTTP authentication.

Use HTTP basic authentication

If checked, basic HTTP authentication information will be included in the HTTP request.

User name

The user name to use during authentication.

Password

The password to use during authentication.

Proxy Settings

This section allows you to specify proxy settings if your users will need to download files through a proxy server. You can fill in these fields with hard-coded values if your setup will be distributed internally and you know the appropriate settings to use. If you are not sure whether your users will be using a proxy server, you should use custom variables in these fields and then create a screen that asks them for the values at run-time.

Proxy server address

The address of the proxy server. For example, "proxy.yourserver.com". Usually you will use a custom variable here such as %UserProxyAddress% and fill the variable in from a screen.

Proxy server port

The port that should be used on the proxy server. The default is 80. Usually you will use a custom variable here such as %UserProxyPort% and fill the variable in from a screen.

User name

The user name that should be used with the proxy server. Usually you will use a custom variable here such as %UserProxyUserName% and fill the variable in from a screen.

Password

The password that should be used with the proxy server. Usually you will use a custom variable here such as %UserProxyPassword% and fill the variable in from a screen.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to download file from Web. | Unable to connect to server or proxy server. <<URL>>
2 | Failed to download file from Web. | Request denied by server. <<URL>>
3 | Failed to download file from Web. | Invalid URL supplied. <<URL>>
4 | Failed to download file from Web. | Operation terminated before completion. <<URL>>
5 | Failed to download file from Web. | An invalid type has been specified. <<URL>>
6 | Failed to download file from Web. | Unable to open specified data source. <<URL>>
7 | Failed to download file from Web. | Timeout occurred. <<URL>>
8 | Failed to download file from Web. | Socket receive error occurred. <<URL>>
9 | Failed to download file from Web. | Data source write error. <<URL>>
10 | Failed to download file from Web. | Operation aborted. <<URL>>
11 | Invalid parameter | Connection timeout. <<URL>> <<Timeout>>
12 | Failed to download file from Web. | Failed to set port. <<URL>>
13 | Failed file verification. | File size is incorrect. <<URL>> <<LocalPath>>
14 | Failed file verification. | File CRC is incorrect. <<URL>> <<LocalPath>>
50 | Failed to download file from Web. | Error code returned by server. <<URL>>

Example

In this example we will download the evaluation version of Visual Patch 1.0 from Indigo Rose's Web site.

URL: http://www.indigorose.com/files/vpatch10ev.exe
Local download folder: %SrcDir%\Downloads
Connection timeout: 40
Port: 80
Verify file size: Unchecked
Verify file CRC: Unchecked

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - END IF

Command Reference

END IF

Marks the end of an IF block

Action ID: (none)
Action Category: Control Structures

Settings

None.

Return Values

None.

Example

Not applicable.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - END WHILE

Command Reference

END WHILE

Marks the end of a WHILE block

Action ID: (none)
Action Category: Control Structures

Settings

None.

Return Values

None.

Example

Not applicable.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Execute File

Command Reference

Execute File

Runs an executable file.

Action ID: 3
Action Category: Open/Close Programs

Settings

File to execute (path and filename)

The full path and filename of the program to execute.

Command line arguments

Command line arguments that will be passed to the program.

Working directory

The working directory to use for the program.

Run mode

The initial run mode for the executed program. Choose from Normal, Minimized, or Maximized:

Normal

The program's interface will be sized "normally."

Minimized

The program will launch with its interface minimized.

Maximized

The program will launch with its interface maximized.

Wait for program to finish running before continuing

If checked, the setup executable will wait for the spawned process to complete execution before it continues with the setup.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Error executing file. | <<Path and filename>>

Example

In this example, we will launch Notepad and pass it our "Readme.txt" as a command line argument. This will cause Notepad to launch with the "Readme.txt" file open.

File to execute (path and filename): %WinDir%\Notepad.exe
Command line arguments: "%AppDir%\Readme.txt"
Working directory: %WinDir%
Run made: Normal
Wait for program to finish before continuing: Unchecked

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Find String

Command Reference

Find String

Finds the location of a sub-string in a string.

Action ID: 30
Action Category: Strings

Settings

Store result in variable

The variable that the result will be stored in. The result will be a zero-based index describing the position where the sub-string was found in the string. The result will be -1 if the sub-string was not found.

Search in

The string to search in.

Search for

The sub-string to search for.

Start at position

A zero-based position in the Search in string to start searching from. Use -1 to start searching from the last character in the Search in string.

Search direction

Determines whether to search forward (to the right) or backward (to the left) from the Start at position.

Search is case sensitive

If checked, the search will be case sensitive.

Return Values

None.

Example

The following command will find the last backslash ("\") in a path (e.g. "C:\Program Files\Program X\Program.exe"). This could be useful if you want to strip the file name off of a path and return just the directory name.

Store result in variable: %LastSlashPosition%
Search in: %MyPath%
Search for: \
Start at position: -1
Search direction: Backward
Search is case sensitive: FALSE

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Find Text Line

Command Reference

Find Text Line

This action will search a text file for specific text and return the zero-based line number where the text is found.

Action ID: 44
Action Category: Text Files

Settings

File name:

The full path and filename of the text file to search in.

Search for the line containing the following text:

This is the string that the action will search for. The search is not case-sensitive.

Start search at line number:

The zero-based line number that you want to start searching from. Note: the line at this line number will be included in the search.

Store line number in variable:

This is the variable that will store the zero-based line number that represents the line where the search string was found.

Default value:

This is the default value of the variable. The variable will be set to this value if the text is not found in the text file.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to find text line. | File not found. <<File name>>
2 | Failed to find text line. | Error opening file. <<File name>>
3 | Failed to find text line. | The file is too large to be read <<File name>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Format Number

Command Reference

Format Number

This action will format a floating-point number to a specified number of decimal places.

Action ID: 78
Action Category: Strings

Settings

Store result in variable:

The variable that will store the formatted number.

Number to format:

The number that will be formatted.

Number of decimal places:

The number of decimal places that the number should be rounded or truncated to.

Method:

The method that should be used to format the number. Round will round the number up or down to the specified number of decimal places. A digit of five or greater gets rounded up while less than five gets rounded down. Truncate will simply cut the number off at a certain number of decimal places without rounding.

Return Values

None.

Example

The following command will round PI to four decimal places (3.1416):

Store result in variable: %RoundedPI%
Number to format: 3.1415926
Number of decimal places: 4
Method: Round

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Generate Random Value

Command Reference

Generate Random Value

Assigns a random value to a variable.

Action ID: 38
Action Category: Variables

Settings

Variable

Store result in variable

The name of the variable that will hold the random value.

Generation Mode

The method to use to generate the value:

Number between values

Generate a number between Minimum and Maximum, inclusive.

String based on mask

The value will be based on a mask. The following special mask characters may be used:

Character | What will be generated
# | Random number ("0-9")
* | Uppercase letter ("A-Z")
@ | Lowercase letter ("a-z")
? | Random number or uppercase letter ("A-Z", "0-9")
- | A dash character ("-")
A literal character | The literal character will be displayed

Return Values

None.

Examples

Example 1

In this example we will generate a random value from 1 to 10. We will store this value in a custom variable named %RanNum%.

Store result in variable: %RanNum%
Number between values Minimum: 1
Number between values Maximum: 10
String based on Mask: NA

Example 2

In this example we will generate a random serial number of the form: 'SetupFactory-12345' and store it in a custom variable named %RandomSerial%.

Store result in variable: %RandomSerial%
Number between values: NA
String based on Mask: SetupFactory-#####

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Get Delimited String

Command Reference

Get Delimited String

This action will return a specific entry in a delimited string given a delimiter and a zero-based index.

If the index is greater than the number of entries in the delimited string, the action returns an empty string ("").

Action ID: 71
Action Category: Strings

Settings

Store result in variable:

The name of the variable to store the result in.

Source String

The source string, that contains a delimited list.

Delimiter

The character(s) that delimit the supplied list.

Item index

The zero-based index of the item to return.

Return Values

None.

Example

In this example, we will get the first occurrence of a file from a comma-separated list.

We have already searched the User's hard drive for all .sf6 files and stored the results in the variable %SF6Files%. Now we will get the first occurrence (the first .sf6 file found). We will be able to use this information to ask the user if they would like to use this path as the installation directory.

We will store the first occurrence in our variable: %FirstPath%

Store result in variable: %FirstPath%
Source string: %SF6Files%
Delimiter: ,
Item index: 0

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Get Text Line

Command Reference

Get Text Line

This action will store a line of text from a text file, based upon a zero-based index.

Action ID: 45
Action Category: Text Files

Settings

File name:

The full path and filename of the text file.

Line number:

The zero-based line number of the line of text that you want to store.

Store line in variable:

The variable that will store the line of text that you specify.

Default:

The default value that your variable will be set to if the specified line number cannot be found.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to get text line. | File not found. <<File name>>
2 | Failed to get text line. | Error opening file. <<File name>>
3 | Failed to get text line. | The file is too large to be read <<File name>>
4 | Failed to get text line. | Line number is out of range. <<Line number>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - GOTO Label

Command Reference

GOTO Label

Jumps to a label in the action list.

Action ID: 104
Action Category: Control Structures

Settings

Target label

The label to jump to. Labels can be defined using the Label action.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not GOTO label. | Label not found. <<Target label>>

Example

In this example, the GOTO Label action will jump to a label named "Step2".

Target label: Step2

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - IF

Command Reference

IF

Starts an IF block. If the expression specified in the Condition field resolves to TRUE, all of the actions following the IF action will be executed until a matching END IF is found. If the expression evaluates to FALSE, the installer will jump to the first action after the next matching END IF, and the actions will continue to be performed from there.

Action ID: 100
Action Category: Control Structures

Settings

Condition

The conditional expression that must resolve to TRUE in order for the actions in the IF block to be performed.

Build...

Opens the Build Expression dialog which provides a useful interface to help you build the conditional expression.

SEE ALSO |
? | For more information on expressions, see Chapter 2: Key Concepts and Chapter 15: Expressions in the User's Guide.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Syntax error in IF statement. | Missing value. A value was expected at position <<Start position of error>>. <<Condition>>
2 | Syntax error in IF statement. | Missing operator before open parenthesis. There is an operator missing before the open parenthesis at position <<Start position of error>>. <<Condition>>
80 | Syntax error in IF statement. | End of loop not found. <<Condition>>

Examples

Example 1

In this example, we will create an IF block that will only be executed if the user is running on Windows 95 or Windows 98.

Condition: (%IsWin95% = 1) OR (%IsWin98% = 1)

Example 2

In this example, we will create an IF block that will only be executed if the user is running the update on a non-English system.

Condition: %SysLanguage% <> 9

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Insert Text Line

Command Reference

Insert Text Line

This action will insert a line of text at the specified line number.

Action ID: 46
Action Category: Text Files

Settings

File name:

This is the full path and filename of the text file.

Insert new line at position (-1 for end of file):

This is the zero-based line number where the line of text will be inserted. Use -1 to append the line to the end of the text file.

Line to insert:

This is the line of text that will be inserted into the text file.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
2 | Failed to insert text line. | Error opening file. <<File name>>
3 | Failed to insert text line. | The file is too large to be read <<File name>>
4 | Failed to insert text line. | Line number is out of range. <<Line number>>
5 | Failed to insert text line. | Could not write to text file. <<Line number>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Install File

Command Reference

Install File

Installs a file on the local system. Essentially this performs a copy command with more options.

Action ID: 52
Action Category: File Operations

Settings

Locations

Source

The path and filename of the file to install.

Destination

The destination directory and/or filename.

Note: The destination directory MUST already exist when performing this action. If Destination specifies a path to a file, all of the folders included in the path must already exist. You can use a Create Directory action to create a destination directory if necessary.

Options

If file already exists

The action that will be taken if a file with the same name already exists at the destination. The relative newness of the file is determined by the version resource information built into the file. If the file does not contain version information, the file’s date and time will be used as criteria. The options are:

Action | Description
Overwrite if existing file is same or older (Default) | If the file that we are installing is newer than or the same as the existing file, then overwrite the existing file.
Overwrite if existing file is older | If the file that we are installing is newer than the existing file, then overwrite the existing file.
Always overwrite existing file | The file that we are installing will always overwrite an existing file with the same name.
Never overwrite existing file | The file that we are installing will never overwrite an existing file with the same name.
Ask the user | The user will be asked whether or not the existing file should be overwritten.

NOTE: It is generally not a good idea to select "Always overwrite existing file" unless you are sure that this is what you need to do. Also, do not select "Ask the user" unless you are sure they have the knowledge to make such a decision. "Overwrite if existing file is same or older" is generally the safest option for this situation.

Create Backup

If selected, a backup of the existing file (if any) will be made during installation. The existing file will be renamed to filename.bak. If filename.bak already exists, it will be named filename.bk1, or filename.bk2, etc. The new file will only be installed after the existing one has been backed up.

Shared/System file

If checked, a usage count will be kept for the file during installation and uninstallation. This feature should only be used for files that are shared by multiple programs, such as system files.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) | OK |
1 | Failed to install file. | File not found. <<Source>>
2 | Failed to install file. | Invalid destination specified. <<Destination>>
3 | Failed to install file. | Invalid source specified. <<Source>>
4 | Failed to install file. | Could not delete file(s) <<Destination>>
5 | Failed to install file. | Could not copy file(s) <<Source>> <<Destination>>

Example

In this example, we will install a file called "MyControl.dll" from the "download" subdirectory to the user's system directory.

Source: %SrcDir%\download\MyControl.dll
Destination: %SysDir%
If file already exists: Overwrite if existing file is same or older
Create Backup: Unchecked
Shared/System file: Checked

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Label

Command Reference

Label

Sets a label that can be jumped to from anywhere else on the same action tab using a GOTO Label action. The Label action has no effect when it's performed at run time; it only serves as a "target" for GOTO Label actions on the same action tab. In other words, the Label action has no effect when it's encountered in the sequential running of commands.

Action ID: (none)
Action Category: Control Structures

Settings

Label

The text or "name" of the label. Use a unique name that will identify the label.

Return Values

None.

Example

This example creates a label entitled: "Step2". You could use a GOTO Label action to jump to this label from somewhere else on the same action tab.

Label: Step2

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Left String

Command Reference

Left String

Creates a new string from the left-most x characters of an existing string.

Action ID: 32
Action Category: Strings

Settings

Store result in variable

The variable that the result will be stored in. The result will be a new string made up of characters copied from the source string.

Source String

The string to copy the characters from.

Number of characters

The number of characters to copy.

Return Values

None

Example

In this example we will get the first three characters from the string "All for one" to create the string "All", which we will store in the variable %TheWordAll%.

Store result in variable: %TheWordAll%
Source string: All for one
Number of characters: 3

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Length of String

Command Reference

Length of String

Counts the number of characters in a string, and stores it in a variable.

Action ID: 33
Action Category: Strings

Settings

Store result in variable

The variable that the result will be stored in. The result will be the number of characters in the string.

Source String

The string whose length with be calculated.

Return Values

None

Example

In this example we will get the length of the full path to our application directory, stored in %AppDir%. The length of a path can be useful if you plan on manipulating it (e.g. stripping folders from the path).

Store result in variable: %AppDirLength%
Source String: %AppDir%

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Mid String

Command Reference

Mid String

Creates a new string by copying a specific number of characters starting from a specific position in an existing string.

Action ID: 33
Action Category: Strings

Settings

Store result in variable

The variable that the result will be stored in. The result will be a new string made up of characters copied from the source string.

Source string

The string to copy the characters from.

Start at position

The zero-based character position to start copying characters from.

Number of characters

The number of characters to copy.

Return Values

None

Example

In this example, we will store the folder name of our main application directory in the custom variable %MainFolderName%.

%FolderStart% is the starting position of the folder name, which we will have determined earlier using other actions.

%FolderNameLength% is the length of the folders name, which we will have determined earlier using other actions.

Store result in variable: %MainFolderName%
Source String: %AppDir%
Start at position: %FolderStart%
Number of characters: %FolderNameLength%

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Modify INI File

Command Reference

Modify INI File

Modifies an INI file.

Action ID: 18
Action Category: INI Files

Settings

INI file Action

The action to perform on the INI file:

  • Set Value - Sets a value in the INI file.

  • Delete Value - Deletes a value from the INI file.

  • Delete Section - Deletes an entire section from the INI file.

File name

The name of the INI file.

Section

The name of the INI file section to operate on.

Value name

The name of the INI file value to modify.

Value data

The data to write to the INI file value (i.e., the data to store in the INI file).

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Simple Message (%LastErrorMsg%)
0 (OK) |  |
1 | Could not modify INI file. | Could not set value. <<File name [Section] - Value name = Value data>>
2 | Could not modify INI file. | Could not delete value. <<File name [Section] - Value name>>
3 | Could not modify INI file. | Could not delete section. <<File name [Section]>>

Example

In this example, we will write the registered user's name into a custom INI file named settings.ini.

Note: %AppDir% and %RegOwner% are both built-in variables.

INI file Action: Set Value
Filename: %AppDir%\settings.ini
Section: User Info
Value name: Name
Value data: %RegOwner%

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Modify Registry

Command Reference

Modify Registry

Modifies the Registry.

Action ID: 17
Action Category: Registry

Settings

Registry action

The action to perform on the Registry:

  • Create Key - Creates a new key in the Registry.

  • Delete Key - Deletes a key and all of its sub keys and values from the Registry.

  • Set Value - Sets a value in a Registry key.

  • Delete Value - Deletes a value from a Registry key.

Main key

The main or "root" key to modify.

Sub key

The sub key to modify.

Value name

The name of the Registry value to modify.

Value Type

The type of Registry value to write. Choose from REG_BINARY, REG_DWORD, REG_EXPAND_SZ, REG_MULTI_SZ, REG_SZ.

Value data

The data to write to the Registry value.

Note: If you are using REG_BINARY, you must enter the data as two-character hex values separated by spaces. For example, "A2 FF 00 B6". If you are using REG_MULTI_SZ, separate strings with the "|" symbol. For example, "Value 1|Value 2|Value 3".

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not modify the Registry. | Could not create key. <<MAIN_KEY\SubKey>>
2 | Could not modify the Registry. | Could not delete key. <<MAIN_KEY\SubKey>>
3 | Could not modify the Registry. | Could not set value. <<MAIN_KEY\SubKey - ValueName = ValueData>>
4 | Could not modify the Registry. | Could not delete value. <<MAIN_KEY\SubKey - ValueName>>
5 | Could not modify the Registry. | Could not open key. <<MAIN_KEY\SubKey>>

Example

In this example we will create a Registry key that tells the system to run "My Program.exe" whenever the system is rebooted.

Registry Action: Set Value
Main Key: HKEY_LOCAL_MACHINE
Sub Key: Software\Microsoft\Windows\CurrentVersion\Run
Value name: My Program
Value type: REG_SZ
Value data: %AppDir%\My Program.exe

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Move File on Reboot

Command Reference

Move File on Reboot

Tells Windows to move a file from one location to another the next time that the system is rebooted.

Action ID: 74
Action Category: Reboot

Settings

Source

The path and filename of the file that you would like to move.

Destination

The path and filename that you would like the file moved to. Important: On Windows 95/98/ME systems, the destination cannot contain long path or file names, i.e., the destination path must conform to the DOS 8.3 naming convention. Windows NT, 2000 and XP do not suffer from this limitation; however, if your installer needs to run on Windows 95, 98 or ME, you will need to use the DOS 8.3 naming convention to ensure that the action will work for all users.

(More info: Windows 95, Windows 98 and Windows ME allow for a file to be moved automatically on reboot when an entry is placed in a specific INI file. This operation occurs very early in the boot process, and uses a DOS mode operation that doesn't understand Windows long filenames. The Move File on Reboot action will automatically investigate the Source file that you provide to determine its short filename, so you can use a long filename in the Source field and it will be converted automatically. But the same cannot be done for the Destination filename, because the DOS mode operation is unable to create long filenames. Even if the destination filename were converted automatically, Windows would not be able to locate the file using the long path and filename that you entered in the Destination field, because the DOS mode operation would have created the file without any long filename information. Windows NT, Windows 2000, and Windows XP use a different mechanism to move files on reboot, so they can handle long filenames with no problems.)

Note: The destination directory MUST already exist when performing this action. If Destination specifies a path to a file, all of the folders included in the path must already exist. You can use a Create Directory action to create a destination directory if necessary.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) | OK |
1 | Failed move file on reboot command. | Could not set value. <<Source>> <<Destination>>

Example

In this example, we will move a file from the user's temporary directory to %AppDir%. We are moving this file on reboot because it is our main executable and it was probably running during the installation.

Source (full path): %TempDir%\MainRun.exe
Destination (full path): %AppDir%\MainRun.exe

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Move Files

Command Reference

Move Files

Moves files on the local system.

Action ID: 35
Action Category: File Operations

Settings

Locations

Source

The path and filename of the file(s) you want to move (this can include the wildcards "*" and "?").

Destination

The destination directory and/or filename. Do NOT use wildcards in this field.

Note: The destination directory MUST already exist when performing this action. If Destination includes a path, all of the folders in the path must already exist. You can use a Create Directory action to create a destination directory if necessary.

Options

Recurse subdirectories

If checked, the move command will recurse through subdirectories when a wildcard is used in the Source field.

Overwrite existing files

If checked, any existing destination files will be overwritten by the source files. If unchecked, destination files will not be overwritten by source files.

Continue moving files even if one or more fail

If checked, the move operation will continue even if some files fail to be moved. If unchecked, the move operation will stop as soon as the first error occurs.

Move hidden and system files

If checked, files with the "hidden" or "system" attributes set will be moved. If unchecked, hidden and system files will not be moved.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not move file(s). | Invalid source specified. <<Source>>
2 | Could not move file(s). | Invalid destination specified. <<Destination>>
3 | Could not move file(s). | File not found. <<Source>>
4 | Could not move file(s). | The specified path was not found. <<Destination>>
5 | Could not move file(s). | One or more files could not be moved. <<Comma separated list of files that could not be moved>>

Example

In this example, we will move a file named "database.bak" from the same directory that the setup executable is being run from to a sub-directory called "backup".

Note: %SrcDir% is a built-in variable.

Source: %SrcDir%\database.bak
Destination: %SrcDir%\backup

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Open Document

Command Reference

Open Document

Opens, plays, prints or performs other actions on a document file using the associated viewer on the user's system.

When you perform this action on a document, Windows will open the document using the document viewer associated with that file type. For example, if you open a file called ReadMe.txt, the text file will most likely be opened with Notepad, unless the user has associated a different text viewer with the .txt file type on their system.

Action ID: 4
Action Category: Open/Close Programs

TIP |
 | You can determine the associated viewer for any file type by using the Read File Association action.

Settings

File to open (path and file name)

The full path and file name of the program to open.

Verb

The shell "verb" that tells the viewer what to do with the file. You can type your own verb, or choose from:

Open | - | the "Open" shell verb
Print | - | the "Print" shell verb
Explore | - | the "Explore" shell verb
Play | - | the "Play" shell verb

Working directory

The working directory to use when opening the document.

Run mode

The run mode of the executed program. Choose from Normal, Minimized, or Maximized.

Normal

The viewer's interface will be sized "normally."

Minimized

The viewer will launch with its interface minimized.

Maximized

The viewer will launch with its interface maximized.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Error opening file. | The specified file was not found. <<File to open>>
2 | Error opening file. | The specified path was not found. <<File to open>>
3 | Error opening file. | The .exe file is invalid. <<File to open>>
4 | Error opening file. | The operating system denied access to the specified file. <<File to open>>
5 | Error opening file. | The file name association is incomplete or invalid. <<File to open>>
6 | Error opening file. | The DDE transaction could not be completed because other DDE transactions were being processed. <<File to open>>
7 | Error opening file. | The DDE transaction failed. <<File to open>>
8 | Error opening file. | The DDE transaction could not be completed because the request timed out. <<File to open>>
9 | Error opening file. | The specified dynamic-link library was not found. <<File to open>>
10 | Error opening file. | There is no application associated with the given file name extension. <<File to open>>
11 | Error opening file. | There was not enough memory to complete the operation. <<File to open>>
12 | Error opening file. | A sharing violation occurred. <<File to open>>

Examples

Example 1

In this example, we will open our "Readme.txt" file in the default viewer for text files.

File to open (path and file name): %AppDir%\Readme.txt
Verb: open
Run mode: Normal

Example 2

In this example, we will use the print shell verb to print our "Readme.txt" file.

File to open (path and file name): %AppDir%\Readme.txt
Verb: print
Run mode: Normal

Example 3

In this example we will open the Indigo Rose web site in the user's default web browser.

File to open (path and file name): http://www.indigorose.com
Verb: open
Run mode: Normal

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Parse Path

Command Reference

Parse Path

Parses a string that contains a path to retrieve specific information from it, such as the filename or the drive letter.

Action ID: 72
Action Category: Strings

Settings

Store result in variable:

The name of the variable to store the result in.

Source path:

The path that you would like to parse.

Information to store:

The information that Setup Factory will store in the Store result in variable variable. Choose from:

  • Drive ("C:"): This will determine the drive letter from the supplied path, and store it in the variable.

  • Drive and folder ("C:\Folder1\Folder2"): This will store the drive letter and the folders (i.e. the full path with the filename removed) in the supplied variable.

  • Folder ("Folder1\Folder2"): This will store the folders (i.e. the full path with the drive letter and filename removed) in the supplied variable.

  • File name ("filename.ext"): This will store the filename (including the extension) in the supplied variable.

  • File extension ("ext"): This will determine the filename's extension and store it in the supplied variable.

  • Folder and file name ("Folder1\Folder2\filename.ext"): This will store the folders and the filename (i.e. the full path with the drive letter removed) in the supplied variable.

Return Values

None.

Example

In this example, we will parse a string that contains the path to a previous installation of our product.

We have already stored the path to the previous main executable in the variable %PrevPath%. The problem with %PrevPath% is that it contains our main executable's filename (i.e. C:\Program Files\My Install\MainRun.exe) but we only want the drive and folder names.

We will store the result in: %AppDir%

Note: It is not generally a good idea to modify %AppDir% unless you are an advanced user.

Store result in variable: %AppDir%
Source Path: %PrevPath%
Information to store: Drive and folder ("C:\Folder1\Folder2")

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Pause Service

Command Reference

Pause Service

Pauses a service on the local system.

NOTE: This action only works on Windows NT/2000/XP and has no effect on Windows 9x/ME. For more information about services, please read a book on the subject or search for more infromation online. You should not haphazardly experiment with the services on your or anyone else's system as this could cause major problems with the operating system. The service actions were put into this product for those who know how to use them and require their functionality.

Action ID: 58
Action Category: Services

Settings

Display Name

Find service by display name:

If checked, the setup will attempt to find the service by its display name.

Display name:

The display name that the setup will use in order to find the service if Find service by display name is checked.

Key Name

Find service by key name:

If checked, the setup will attempt to find the service by it's key name.

Key name:

The key name that the setup will use in order to find the service if Find service by key name is checked.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to pause service. | Iterate services failed. <<Display Name>> <<Key Name>>
2 | Failed to pause service. | Query service failed. <<Display Name>> <<Key Name>>
3 | Failed to pause service. | Service not found. <<Display Name>> <<Key Name>>
4 | Failed to pause service. | Command failed. <<Display Name>> <<Key Name>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Query Service

Command Reference

Query Service

Queries the user's system for the status of a specified service. The status will be stored in a user defined variable.

NOTE: This action only works on Windows NT/2000/XP and has no effect on Windows 9x/ME. For more information about services, please read a book on the subject or search for more infromation online. You should not haphazardly experiment with the services on your or anyone else's system as this could cause major problems with the operating system. The service actions were put into this product for those who know how to use them and require their functionality.

Action ID: 61
Action Category: Services

Settings

Display Name

Find service by display name:

If checked, the setup will attempt to find the service by it's display name.

Display name:

The display name that the setup will use in order to find the service if Find service by display name is checked.

Key Name

Find service by key name:

If checked, the setup will attempt to find the service by it's key name.

Key name:

The key name that the setup will use in order to find the service if Find service by key name is checked.

Variable

Variable:

The name of the variable to store the result in. The result will be one of the following:

NOT_FOUND | - | The service could not be located using the supplied parameters.
STOPPED | - | The service is currently stopped.
START_PENDING | - | The service is going to start.
STOP_PENDING | - | The service is going to be stopped.
RUNNING | - | The service is currently running.
CONTINUE_PENDING | - | The service is going to continue.
PAUSE_PENDING | - | The service is going to be paused.
PAUSED | - | The service is currently paused.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to query service. | Iterate services failed. <<Display Name>> <<Key Name>>
2 | Failed to query service. | Query service failed. <<Display Name>> <<Key Name>>

Examples

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Read File Association

Command Reference

Read File Association

Stores the full path to the executable associated with a specific file extension (i.e. the associated viewer for that file type) in a variable.

You supply a file extension such as ".txt" and the variable will be set to the location of the executable associated with that file type on the user's system.

Action ID: 20
Action Category: File Information

Settings

Variable name

The name of the variable to store the result in.

Default value

The default value for the variable if the association cannot be determined.

File extension

The extension in "ext" or ".ext" format, i.e., with or without the dot ('.').

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not read file association. | Could not open key. <<File extension>>
2 | Could not read file association. | Could not read value. <<File extension>>
3 | Could not read file association. | Invalid file type. <<File extension>>
4 | Could not read file association. | File not found. <<File extension>>

Examples

Example 1

In this example, we will find out the path and filename of the default text viewer on the user's system.

Variable name: %TextViewerLocation%
Default value: Not Found
File extension: .txt

Example 2

In this example, we will find out the full path and filename of the user's copy of AutoPlay Menu Studio 3.0.

Variable name: %AutoPlayLocation%
Default value: Not Installed
File extension: .am3

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Read File Information

Command Reference

Read File Information

Reads information about a file on the user's system and stores that information in a variable.

Action ID: 29
Action Category: File Information

Settings

File information to collect

What information do you want to find out about the file? Choose from:

Version | - | The version of the file. This will only work with files that have embedded resourse information, such as EXE or DLL files.
CRC Value | - | The CRC value of the file.
Size | - | The size of the file in bytes.
Existence | - | Whether or not the file exists. Sets the variable to "TRUE" if the file exists, and sets the variable to the Default value if it doesn't.
Short file name | - | The short filename (i.e. the "8.3 filename" or "DOS filename") of the file.

Variable name

The name of the variable to assign the result to.

Default value

The default value to assign to the variable if the file information cannot be determined or if the file does not exist.

File name

The name of the file to investigate.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not read file information. | Could not read file version. <<File name>>
2 | Could not read file information. | Could not calculate file CRC. <<File name>>
3 | Could not read file information. | Could not determine file size. <<File name>>

Examples

Example 1

In this example, we will find out what version of Notepad the user has on their system.

File information to collect - Version
Variable name - %NotepadVersion%
Default value - 0.0.0.0
File name - %WinDir%\Notepad.exe

Example 2

In this example, we will read in the CRC of our main executable "MyProgram.exe" from our main application directory. We will store this information in a custom variable named %MyProgramCRC%.

By reading in the CRC value, we could compare it to a list of valid CRC values. This would be useful if we wanted to make sure the user did not have a "stolen" copy of our software.

File information to collect: CRC Value
Variable name: %MyProgramCRC%
Default value: 0
File name: %AppDir%\MyProgram.exe

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Read fron INI File

Command Reference

Read from INI File

Reads a value from an INI file and stores it in a variable.

Action ID: 13
Action Category: INI Files

Settings

Variable name

The name of the variable to store the result in.

Default value

The default value to assign the variable if the INI file, section or value name does not exist or cannot be read.

File name

The name of the INI file.

Section

The INI file section to read from.

Value name

The name of the INI file value to read from the section.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not read from INI file. | File not found. <<File name>>
2 | Could not read from INI file. | Could not read value. <<File name>>: [<<Section>>] - <<Value Name>>

Example

In this example, we will read a user's name from a private INI file in the user's Windows directory called "info.ini" that was put there by a previous installation. The data is in the section called "UserData", in the "UserName" value.

We will store this information in a custom variable named %UserName%.

Note: %WinDir% is a built-in variable.

Variable name: %UserName%
Default value: Unknown User
File name: %WinDir%\info.ini
Section: UserData
Value name: UserName

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Read from Registry

Command Reference

Read from Registry

Reads a value from the Registry and assigns it to a variable.

Action ID: 12
Action Category: Registry

Settings

Variable name

The name of the variable to store the result in.

Default value

The default value to assign to the variable if the Registry key does not exist or cannot be read.

Main key

The main or "root" key where the sub key can be found.

Sub key

The sub key to read from.

Value name

The name of the Registry value (in the sub key) to read from.

Set variable to"TRUE" if key exists

When this is checked, the variable will be set to "TRUE" if the key exists or to the Default value if the key doesn't exist.

Auto-expand if value of type REG_EXPAND_SZ

If the value turns out to be of type REG_EXPAND_SZ and this is checked, the value will be expanded before it is stored in the variable.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not read from the Registry. | Could not open key. <<Main key\Sub key\Value name>>
2 | Could not read from the Registry. | Could not read value. <<Main key\Sub key\Value name>>

Example

In this example, we will read the location of our previous installation from the registry and store it in a custom variable named %PreviousLocation%.

Variable name: %PreviousLocation%
Default value: Not Installed
Main key: HKEY_CURRENT_USER
Sub key: Software\My Company\The Product
Value name: InstallDir
Set variable to TRUE if Sub Key exists: Unchecked
Auto-expand if value is of type REG_EXPAND_SZ: Unchecked

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Read Text File

Command Reference

Read Text File

Reads the contents of a text file into a variable.

Action ID: 36
Action Category: Text Files

Settings

Variable name

The name of the variable to store the text file contents in.

File name

The name of the text file to read.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not read text file. | File not found. <<File name>>
2 | Could not read text file. | Error opening file. <<File name>>
3 | Could not read text file. | The file is too large to be read. <<File name>>

Example

In this example, we will read all of the text from our "r eadme.txt" file into a custom variable named %ReadmeText%.

Variable name: %ReadmeText%
File name: %AppDir%\readme.txt

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Register File

Command Reference

Register File

Registers a file on the the local system. This action uses the DLLRegisterServer in order to register a DLL or OCX file.

Action ID: 53
Action Category: File Operations

Settings

Location

Source

The path and filename of the file that you wish to register. This action will most commonly be used on DLL or OCX files.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 | OK |
1 | Failed to register file. | Failure in LoadLibrary() [<<System error code>> <<File name>>
2 | Failed to register file. | Failure in GetProcAddress(DLLRegisterServer) [<<System error code>>] <<File name>>
3 | Failed to register file. | Failure code returned by DLLRegisterServer <<File name>>
4 | Failed to register file. | File not found. <<File name>>

Example

In this example, we will register a file called "My C ontrol.dll" in the user's system directory.

Note: %SysDir% is a built-in variable.

Source: %SysDir%\mycontrol.dll

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Register Font

Command Reference

Register Font

Registers a file on the the local system.

Setup Factory will attempt to automatically register the file as a TrueType font during installation. This means that the font will be registered with the operating system and will be made available to the user. In order for this to work, the file must be a valid Windows .TTF file.

Action ID: 54
Action Category: File Operations

Settings

Font

File name:

The path and filename of the file that you want to register.

Font name:

The for the TrueType font as it will appear in the Registry. You can press the Auto-Name button beside this field to automatically scan the file and try to determine its embedded name. Note: If the Auto-Name returns "Unknown", the file is most likely not a valid Windows .TTF file.

Auto-Name:

This will automatically scan the font specified in the File name field and try to determine its embedded name.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 | OK |
1 | Failed to register font. | File not found. <<File name>>
2 | Failed to register font. | Invalid font name specified. <<Font Description>>
3 | Failed to register font. | Failed to add font to system font table. <<File name>>
4 | Failed to register font. | Failed to add font to registry. <<File name>>

Example

In this example, we will register a font named "MyProgramFont.ttf" on the user's system.

Note: %FontDir% is a built-in variable.

Source: %FontDir%\MyProgramFont.ttf
Font name: My Font

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Remove Directory

Command Reference

Remove Directory

Removes (deletes) a directory from the local system. The directory must be empty (i.e. it must contain no files or subdirectories) in order to be removable. If you need to empty a directory before trying to remove it, use the Delete Files action first.

Action ID: 11
Action Category: Folders

Settings

Directory (folder) name

The path of the directory to remove.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 - XXX (i.e. 1, 2, 3...N) | Could not remove directory. | <<System-defined error message>> <<Destination>>

Example

In this example, we will remove a folder named "setup" from the user's temp directory. This folder was probably used to store temporary installation files.

Note: %TempDir% is a built-in variable.

Directory (folder) name: %TempDir%\setup

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Remove Shortcut

Command Reference

Remove Shortcut

Removes a shortcut from the local system.

Action ID: 51
Action Category: Shortcuts

Settings

Locations

Folder

The path of the folder containing the shortcut to remove. Usually you will use %SCFolderPath% as the folder. %SCFolderPath% is the start menu folder that the user chooses to install your product's shortcuts to. Other commonly used shortcut folders include %Desktop%, %DesktopNT%, %StartMenu%, and %StartMenuNT%. See the Built-in Variables topic for more information about these variables.

Shortcut description

The description of the shortcut that you want to remove.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) | OK |
1 | Failed to remove shortcut. | Could not delete file(s). <<SC Folder\Description.lnk>>

Example

In this example, we will remove the shortcut to "My Program" from the Windows desktop.

Note: %Desktop% is a built-in variable.

Folder: %Desktop%
Shortcut Description: My Program

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Rename File

Command Reference

Rename File

Renames a file or directory on the local system.

Action ID: 9
Action Category: File Operations

Settings

Locations

Source

The full path to the directory or filename that you want to rename.

Destination

The new full path for the directory or file.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not rename file. | Invalid destination specified. <<Destination>>
2 | Could not rename file. | File not found. <<Source>>
3 | Could not rename file. | Name contains invalid characters. <<Source>> <<Destination>>
4 | Could not rename file. | Destination already exists. <<Destination>>

Example

In this example we will rename our old uninstall INI file from: "IRUNIN.INI" to "IRUNIN.BAK".

Source: %AppDir%\IRUNIN.INI
Destination: %AppDir%\IRUNIN.BAK

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Right String

Command Reference

Right String

Creates a new string from the right-most x characters of an existing string.

Action ID: 33
Action Category: Strings

Settings

Store result in variable

The variable that the result will be stored in. The result will be a new string made up of characters copied from the source string.

Source string

The string to copy the characters from.

Number of characters

The number of characters to copy.

Return Values

None

Example

In this example, we will strip the file extension from a file and store it in a custom variable named %Extension%. We can assume that the extension is 3 characters long in this case because the filename was returned by one of our PHP pages after a Submit to Web action, and our PHP script ensures that the return value follows the DOS 8.3 naming format.

Note: In this example we use a custom variable named %URLFile% to represent a filename returned by one of our PHP pages. This is not a built-in variable and would need to have been assigned a value earlier in the setup.

Store result in variable: %Extension%
Source string: %URLFile%
Number of characters: 3

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Run File on Reboot

Command Reference

Run on Reboot

Tells Windows to run a program the next time the system is rebooted. The file will only be run one time (for one reboot). It will not run on subsequent reboots.

This is accomplished by making an entry in the "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" Registry key. On Windows NT/2000/XP, the user must be logged in with the proper Registry writing privileges in order for this action to work.

Action ID: 76
Action Category: Reboot

Settings

File to run

The full path and filename of the file to run.

Command line arguments

Any command line arguments that should be passed to the program when it's run.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) | OK |
1 | Failed run file on reboot command. | Could not open key. <<File to run>>
2 | Failed run file on reboot command. | Could not set value. <<File to run>>

Example

In this example, we will launch the program "MainRun.exe" that we installed, the next time the user's system is started.

Note: %AppDir% is a built-in variable.

File to run: %AppDir%\MainRun.exe
Command line arguments:

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Search for File

Command Reference

Search for File

Searches for one or more files and stores the path(s) of the found file(s).

Action ID: 73
Action Category: File Information

Settings

Store result in variable

The name of the variable to store the result in. The result will be a semi-colon delimited list of paths where the file was found. For example, "C:\Program Files\Yourfile.exe;C:\Backup\Yourfile.exe". You can use the Count Delimited Strings and Get Delimited String actions to parse the returned value into individual paths and filenames.

Default value:

This is the default value of the Store result in variable variable. The variable will be set to this default value if the file being searched for is not found.

Search for file

The file to search for. You can use the wildcards "?" and "*" to specify a single character or any number of characters, respectively. For example, specifying "*.gif" will fill the variable with all files that have the ".gif" file extension.

Scope

The scope determines where the setup executable will search for the specified file on the user's computer. You can specify one or more locations to search. Choose from:

Search all local drives (hard drives) - Searches all of the hard drives on the user's computer for the file.

Search all remote drives (network drives) - Searches all of the user's mapped network drives for the file. Note that this can take a long time depending on the size of the network drives and the speed of the user's network connection.

Search all removable drives (floppy drives, Zip drives, etc.) - Searches all of removable drives on the user's system for the file. Removable drives can take many forms, such as floppy drives of various sizes, Zip drives, Jaz drives, etc. Generally you should only use this search option if you have a very specific reason to do so due to the relatively slow speed of most removable drives.

Search all CD-ROM drives - Searches all of the CD-ROM drives on the user's computer for the file.

Search specific directories/drives - This option allows you to choose specific drives and/or directories to search in. Use the Custom directories field to specify a semi-colon delimited list of drives or paths to search. Check the Recurse custom directories option if you want to search the subdirectories of the custom directories. If this option is unchecked, only the exact specified path will be searched.

Return Values

None.

Example

In this example, we will search the users hard drive for all Setup Factory 6.0 projects. We will store this information, as a semi-colon delimited list, in a variable named %SF6Files%.

Store result in variable: %SF6Files%
Search for file (wildcards "*" and "?" permitted): *.sf6
Search all local fixed drives (hard drives): Checked
Search all remote drives (network drives): Unchecked
Search all removable drives (floppy drives, Zip drives, etc.): Unchecked
Search all CD-ROM drives: Unchecked
Search specific directories/drives: Unchecked
Custom directories (semi-colon delimited): NA
Recurse custom directories: NA

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Set File Attributes

Command Reference

Set File Attributes

Set the attributes of a file on the user's system.

Action ID: 56
Action Category: File Operations

Settings

File name

File name:

The path and filename of the file whose attributes you want to set.

Attributes:

This section allows you to specify the attributes of the file on the user’s system.

Read-only | - | If selected, the file will have the read-only file attribute set.
System | - | If selected, the file will have the system file attribute set.
Hidden | - | If selected, the file will have the hidden file attribute set.
Archive | - | If selected, the file will have the archive file attribute set.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 | OK |
1 | Failed to set file attributes. | File not found. <<File name>>
2 | Failed to set file attributes. | Failed to set file attributes. [<<System Error Code>>] <<Font Description>>

Example

In this example, we will set the hidden attribute for our "My DataFile.dat" data file that was installed on the user's system.

Note: %AppDir% is a built-in variable.

Filename: %AppDir%\MyDataFile.dat
Attributes: Hidden - Checked

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Show Message Box

Command Reference

Show Message Box

Displays a custom text message in a standard Windows message box.

Action ID: 20
Action Category: Dialogs

Settings

Title

The title bar text for the message box.

Message

The text that you want to display in the message box.

Icon

The icon (if any) that you want to include on the message box. Choose from:

  • None

  • Exclamation

  • Information

  • Question

  • Stop

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 - XXX (i.e. 1, 2, 3...N) | Could not display message box. | <<System-defined error message>>

Example

In this example, we will display a message box to tell the user how many more free installations they have left.

Note: The variable %InstallsRemaining% is a custom variable that would need to have been set earlier in the setup.

Title: Warning
Message: You have %InstallsRemaining% free installs remaining. After these free installs you will be required to pay for additional licenses.
Icon: Information

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Start Service

Command Reference

Start Service

Starts a service on the local system.

NOTE: This action only works on Windows NT/2000/XP and has no effect on Windows 9x/ME. For more information about services, please read a book on the subject or search for more infromation online. You should not haphazardly experiment with the services on your or anyone else's system as this could cause major problems with the operating system. The service actions were put into this product for those who know how to use them and require their functionality.

Action ID: 62
Action Category: Services

Settings

Display Name

Find service by display name:

If checked, the setup will attempt to find the service by it's display name.

Display name:

The display name that the setup will use in order to find the service if Find service by display name is checked.

Key Name

Find service by key name:

If checked, the setup will attempt to find the service by it's key name.

Key name:

The key name that the setup will use in order to find the service if Find service by key name is checked.

Arguments

Arguments (';;' Delimited list):

A double-semi-colon delimited list of arguments that will be passed to the service when it starts.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to start service. | Iterate services failed. <<Display Name>> <<Key Name>>
2 | Failed to start service. | Query service failed. <<Display Name>> <<Key Name>>
3 | Failed to start service. | Service not found. <<Display Name>> <<Key Name>>
4 | Failed to start service. | Command failed. <<Display Name>> <<Key Name>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Stop Service

Command Reference

Stop Service

Stops a service on the local system.

NOTE: This action only works on Windows NT/2000/XP and has no effect on Windows 9x/ME. For more information about services, please read a book on the subject or search for more infromation online. You should not haphazardly experiment with the services on your or anyone else's system as this could cause major problems with the operating system. The service actions were put into this product for those who know how to use them and require their functionality.

Action ID: 57
Action Category: Services

Settings

Display Name

Find service by display name:

If checked, the setup will attempt to find the service by it's display name.

Display name:

The display name that the setup will use in order to find the service if Find service by display name is checked.

Key Name

Find service by key name:

If checked, the setup will attempt to find the service by it's key name.

Key name:

The key name that the setup will use in order to find the service if Find service by key name is checked.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to stop service. | Iterate services failed. <<Display Name>> <<Key Name>>
2 | Failed to stop service. | Query service failed. <<Display Name>> <<Key Name>>
3 | Failed to stop service. | Service not found. <<Display Name>> <<Key Name>>
4 | Failed to stop service. | Command failed. <<Display Name>> <<Key Name>>

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Submit to Web

Command Reference

Submit to Web

Submits data to a web site and automatically stores values in variables found in the response. This action allows you to perform a POST or GET to a web script or program just as you would from an HTML form on a web site.

The web script or program can return information to Setup Factory in the following format:

<SUF60>A comma-separated list of custom tag names (used to identify variables and their values).</SUF60>
<TAG1>Data</TAG1>
<TAG2>Data</TAG2>

Setup Factory will search the file returned by the web server for the <SUF60> tag, find out what other tag names to look for in the file, and then search for those tag names and translate them into variables. The tag names become variables and the tagged data become the values of the variables.

For example:

<SUF60>%UserName%,%AuthorizedToUpdate%</SUF60>
<%UserName%>William Gates</%UserName%>
<%AuthorizedToInstall%>FALSE</%AuthorizedToInstall%>

Would result in the following:

The value "William Gates" would be assigned to a new (or existing) variable named %UserName%
The value "FALSE" would be assigned to a new (or existing) variable named %AuthorizedToInstall%

Action ID: 19
Action Category: Internet

Settings

Location/Connection

URL (host name, directory and file name)

The full URL of the page to submit to (e.g. "http://www.yoursite.com/yourdir/submit.php").

Connection timeout (secs)

The connection timeout in seconds for communication between the setup executable and the HTTP site.

Port

The port to connect to on the HTTP server. The standard HTTP port 80 is used by default.

Submission Method

The method used to submit the data. Choose from GET or POST. If you are not sure of the difference, please consult a book or Web site about CGI programming.

Parameters

A list of name-value pairs that will be submitted to the script or program at the web site. These parameters allow you to pass information from the setup executable to the web script or program. The name-value pairs will be URL encoded for you automatically at runtime.

Authentication

This section allows you to specify a user name and password if the URL is protected by basic HTTP authentication.

Use HTTP basic authentication

If checked, basic HTTP authentication information will be included in the HTTP request.

User name

The user name to use during authentication.

Password

The password to use during authentication.

Proxy Settings

This section allows you to specify proxy settings if your users will need to download files through a proxy server. You can fill in these fields with hard coded values if your setup will be distributed internally and you know the appropriate settings to use. If you're not sure whether your users will be using a proxy server, you should use custom variables in these fields and then create a screen that asks the user for the values at run-time.

Proxy server address

The address of the proxy server. For example, "proxy.yourserver.com". Usually you will use a custom variable here such as %UserProxyAddress% and fill the variable in from a screen.

Proxy server port

The port that should be used on the proxy server. The default is 80. Usually you will use a custom variable here such as %UserProxyPort% and fill the variable in from a screen.

User name

The user name that should be used on your proxy server. Usually you will use a custom variable here such as %UserProxyUserName% and fill the variable in from a screen.

Password

The password that should be used on your proxy server. Usually you will use a custom variable here such as %UserProxyPassword% and fill the variable in from a screen.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to submit to Web. | Unable to connect to server or proxy server. <<URL>>
2 | Failed to submit to Web. | Request denied by server. <<URL>>
3 | Failed to submit to Web. | Invalid URL supplied. <<URL>>
4 | Failed to submit to Web. | Operation terminated before completion. <<URL>>
5 | Failed to submit to Web. | An invalid type has been specified. <<URL>>
6 | Failed to submit to Web. | Unable to open specified data source. <<URL>>
7 | Failed to submit to Web. | Timeout occurred. <<URL>>
8 | Failed to submit to Web. | Socket receive error occurred. <<URL>>
9 | Failed to submit to Web. | Data source write error. <<URL>>
10 | Failed to submit to Web. | Operation aborted. <<URL>>
11 | Invalid parameter value(s). | Connection timeout. <<URL>> <<Timeout>>
12 | Failed to submit to Web. | Failed to set port. <<URL>>
50 | Failed to submit to Web. | Error code returned by server. <<URL>>

Example

In this example, we will pass the user's name and the current date to a PHP script on our website. Our PHP script will take those two values and use them to calculate a password. Once the PHP script has calculated the password, it will pass the information back to our update as the variable %UserPass%.

Note: %Date% is a built-in variable. There are other date variables available as well, including %EuropeanDate%, %ISODate% and %JulianDate%.

URL (host name, directory and file name): http://www.indigorose.com/mark/soft/passform.php
Connection timeout (secs): 40
Port: 80
Submission Method: GET
Use HTTP basic authentication: Unchecked
Parameters:
"UserName" = "%UserName%"
"Date" = "%Date%"

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Unzip Files

Command Reference

Unzip Files

Extracts all of the files from a zip file to a local directory. The zip file must be a standard zip file and cannot be password protected.

Action ID: 5
Action Category: File Operations

Settings

Zip file name

The full path and filename of the zip file to extract from.

Unzip to folder

The local folder to extract all of the files in the zip archive to.

Use internal zip folder names

If checked, the files will maintain their relative paths according to the zip settings when extracted. If unchecked, the files will all be extracted directly to the folder specified in Unzip to folder above, without creating any sub-directories. This option only has an effect if the files in the zip file were added with the preserve path information option enabled in the zip utility used to prepare the zip file.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Failed to extract Zip file. | The specified file was not found. <<Zip file name>> <<Unzip to folder>>
2 | Failed to extract Zip file. | Error reading Zip directory. <<Zip file name>> <<Unzip to folder>>
3 | Failed to extract Zip file. | Unable to change local directory. <<Zip file name>> <<Unzip to folder>>
4 | Failed to extract Zip file. | Extract stage failed. <<Zip file name>> <<Unzip to folder>>
5 | Failed to extract Zip file. | Unable to create local directory. <<Zip file name>> <<Unzip to folder>>

Example

In this example, we'll unzip a file named update.zip, which has already been downloaded to the users temp directory, to a folder called "setup" in the user's temp directory. Once the contents of the zip file have been extracted, they will be available for other actions to use. For example, if update.zip contained an executable named patch.exe, after the executable was extracted from the update.zip file, an Execute File action could be used to launch it.

Note: %TempDir% is a built-in variable.

Zip file name: %TempDir%\update.zip
Unzip to folder: %TempDir%\update
Use internal zip folder names: Unchecked

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - WHILE

Command Reference

WHILE

Starts a WHILE block. If the expression specified in the Condition field resolves to TRUE, all of the actions following the WHILE action will be executed until a matching END WHILE is found. If the expression evaluates to FALSE, the setup will jump to the first action after the next matching END WHILE, and the actions will continue to be performed from there.

WARNING |
! | It is possible to create an endless loop that will hang your setup with a WHILE statement. Make sure that you are using an expression that will eventually evaluate to FALSE.

Action ID: 102
Action Category: Control Structures

Settings

Condition

The conditional expression that must resolve to TRUE for the WHILE block to be executed.

Build...

Opens the Build Expression dialog which provides a useful interface to help you build your conditional expression.

SEE ALSO |
? | For more information on expressions, see Chapter 2: Key Concepts and Chapter 15: Expressions in the User's Guide.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Syntax error in WHILE statement. | Missing value. A value was expected at position <<Start position of error>>. <<Condition>>
2 | Syntax error in WHILE statement. | Missing operator before open parenthesis. There is an operator missing before the open parenthesis at position <<Start position of error>>. <<Condition>>
80 | Syntax error in WHILE statement. | End of loop not found. <<Condition>>

Example

In this example, we will make a while loop that runs until the variable %Counter% equals ten. (The variable %Counter% would need to be incremented within the loop for this to work, e.g. with an Assign Value action that sets %Counter% to %Counter% + 1.)

Condition: %Counter% < 10

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Write to Log File

Command Reference

Write to Log File

Writes text to the setup executable's log file during the installation.

In order for this action to do anything, the Create an installation log file option must be enabled on the Settings tab of the General Design dialog.

This action only has an effect during the installation, and does nothing during an uninstall.

Action ID: 79
Action Category: Text Files

Settings

Line to write to log file

The text that you want to output to the log file. This text will be written to its own line.

Return Values

None.

Example

None available.

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - Write to Text File

Command Reference

Write to Text File

Writes text to a text file.

Action ID: 37
Action Category: Text Files

Settings

File name

The name of the text file to write to.

Data to write

The text to write out to the text file.

TIP |
 | You can write the contents of a variable to a text file by using the variable name in the Data to write field.

If file already exists

What to do if the file already exists:

Overwrite file with new data | - | The old file will be erased and the data will be written to create a new file.
Prepend data to start of file | - | The text in Data to write will be added to the beginning of the text file.
Append data to end of file | - | The text in Data to write will be added to the end of the text file.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 | Could not write to text file. | Error opening file. <<File name>>

Examples

Example 1

In this example, we will overwrite the existing data in a text file with a new string.

(This will be a common case when working with this action. Often you will read all the text from a file into a variable, perform various actions on the text, and then overwrite the text file with the new text.)

We will overwrite the text in our "readme.txt" file, which is located in our program's main directory, represented by %AppDir%. The text we want to write to the readme.txt file would have been assigned to a custom variable named %ReadmeText% earlier in the setup.

File name: %AppDir%
Data to write: %ReadmeText%
If file already exists: Overwrite with new data

Example 2

In this example, we will add the current date to the end of our "SetupInfo.txt" file.

Note: %Date% is a built-in variable. There are other date variables available as well, including %EuropeanDate%, %ISODate% and %JulianDate%.

File name: %AppDir%\SetupInfo.txt
Data to write: %Date%
If file already exists: Append data to end of file

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


Action Properties - YesNo Message Box

Command Reference

Yes/No Message Box

Displays a standard Windows message box with a Yes button and a No button.

Action ID: 28
Action Category: Dialogs

Settings

Title

The title bar text for the message box.

Message

The text that you want to display in the message box.

Icon

The icon (if any) that you want to include on the message box. Choose from:

  • None

  • Exclamation

  • Information

  • Question

  • Stop

Variable

Store result in variable

The variable name to store the result of the message box in. The result will depend on whether the user presses the Yes or No button.

YES value

The value to store in the variable if the Yes button is pressed.

NO value

The value to store in the variable if the No button is pressed.

Return Values

Value (%LastErrorNum%) | Simple Message (%LastErrorMsg%) | Verbose Message (%LastErrorDetails%)
0 (OK) |  |
1 - XXX (i.e. 1, 2, 3...N) | Could not display message box. | <<System-defined error message>> << Message>>

Example

In this example, we will ask the user if they would like to download and install some optional image files.

We will store their answer in a custom variable named %InstallImages%.

%InstallImages% will contain "1" if the user selects Yes and "0" if they select No.

Later in our setup we would probably use %InstallImages% as a Boolean condition for an IF action.

Title: Image Files
Message: Would you like to download and install our optional image library?
Icon: Question
Store result in variable: %InstallImages%
YES value: 1
NO value: 0

See Also: Alphabetical List of Actions, Categorical List of Actions, On Error tab


On Error tab

The On Error tab tells Setup Factory what to do if an error occurs when the action is being performed.

User Notification

This section specifies the amount of detail the user will be given if an error occurs.

None

Don't notify the user at all (the user will not be notified of the error).

Simple

The simple error message will be displayed if an error occurs. The details of the simple error message can be found in the Return Values section of the action's help topic.

Verbose

The verbose error message will be displayed if an error occurs. The details of the verbose error message can be found in the Return Values section of the action's help topic.

Custom

A custom error message of your own is displayed. You can enter your own message text directly onto the On Error tab when this option is selected.

Action

This is where you can specify what should happen after the user is notified of the error.

Continue

The setup will continue with the next action in the list.

Continue at label

The setup will continue at the specified label in the actions list.

Abort Setup

The setup will abort.

See Also: Alphabetical List of Actions, Categorical List of Actions


Actions

Actions are specialized commands that your installer can perform at run time. Each action is a discrete instruction that tells the installer to do something - whether it's to open a document, search for a file, create a shortcut, or modify a Registry key.

Action Lists

An action list is simply a sequence of one or more actions.

(More info: We usually use this term to refer to a sequence of actions that performs a single function or serves a common purpose. It doesn't have to be that specific, though; "action list" can just as easily refer to all the actions on a tab, or to a handful of unrelated actions that you want to select and export to a file for future use.)

Action Tabs

Action tabs are found on several dialogs throughout Setup Factory. Each action tab corresponds to a different time during the installation process when actions can be performed.

(More info: Actions can occur at different times, or events, during the installation process. These events are represented by action tabs in the Setup Factory design environment. The four main action tabs are located on the Actions dialog; the others can be found on the Screen Properties and Uninstall dialogs.)

Available Actions

Please see the alphabetical list or the categorical list of actions for a complete list of all available actions.

See Also: Actions dialog


Alphabetical List of Actions

All Actions

Abort
Assign Value
Blank Line
Call DLL Function
Check Internet Connection
Close Program
Comment
Continue Service
Copy Files
Count Delimited Strings
Count Text Lines
Create Directory
Create Service
Create Shortcut
Delete File on Reboot
Delete Files
Delete Service
Delete Text Line
Download File HTTP
END IF
END WHILE
Execute File
Find String
Find Text Line
Format Number
Generate Random Value
Get Delimited String
Get Text Line
GOTO Label
IF
Insert Text Line
Install File
Label
Left String
Length of String
Mid String
Modify INI File
Modify Registry
Move File on Reboot
Move Files
Open Document
Parse Path
Pause Service
Query Service
Read File Association
Read File Information
Read from Registry
Read from INI File
Read Text File
Register File
Register Font
Remove Directory
Remove Shortcut
Rename File
Right String
Run on Reboot
Search for File
Set File Attributes
Show Message Box
Start Service
Stop Service
Submit to Web
Unzip Files
WHILE
Write to Log File
Write to Text File
Yes/No Message Box

See Also: Categorical List of Actions


catagorical list of actions

Command Reference

Categorical List of Actions

Control Structures

Abort
Blank Line
Comment
END IF
END WHILE
GOTO label
IF
Label
While

Dialogs

Show Message Box
Yes/No Message Box

File Information

Read File Information
Read File Association
Search for File

File Operations

Call DLL Function
Copy File(s)
Delete File(s)
Install File
Move File(s)
Register File
Register Font
Rename File
Set File Attributes
Unzip Files

Folders

Create Directory
Remove Directory

INI File Commands

Modify INI File
Read from INI File

Internet

Check Internet Connection
Download File HTTP
Submit to Web

Open/Close Programs

Close Program
Execute File
Open Document

Reboot

Delete file on Reboot
Move File on Reboot
Run on Reboot

Registry

Modify Registry
Read from Registry

Services

Continue Service
Create Service
Delete Service
Pause Service
Query Service
Start Service
Stop Service

Shortcuts

Create Shortcut
Remove Shortcut

Strings

Count Delimited Strings
Find String
Format Number
Get Delimited String
Left String
Mid String
Parse Path
Right String

Text Files

Count Text Lines
Delete Text Lines
Find Text Line
Get Text Line
Insert Text Line
Read Text File
Write to Log File
Write to Text File

Variables

Assign Value
Generate Random Value

See Also: Alphabetical List of Actions


Handling Errors

Even the most well-designed installers can run into situations that generate errors. For instance, connection problems might prevent an HTTP download from succeeding, or an INI file you need to read from may have been deleted by a careless user.

Setup Factory gives you two ways to respond to such errors:

Built-in error handling

You can use the standard error handling features built into each action, which you can configure using the On Error tab of the action's properties dialog.

Custom error handling

You can use your own combination of actions to respond to the error. These actions could be contained in an IF/END IF block that checks built-in variables like %LastErrorNum% to determine whether an error occurred. Or, the actions could be assigned a label and called directly using the Continue at label setting on the On Error tab.

See Also: Alphabetical List of Actions, Categorical List of Actions


Using Control Structures

Setup Factory provides several actions that you can use to build control structures into your installer: IF, END IF, WHILE, END WHILE, Label, GOTO Label, and Abort.

IF and END IF

The IF action begins what's known as a conditional block. A conditional block is simply a series of actions that will only be performed if a condition is met. In this case, the condition is an expression entered on the Action Properties dialog for the IF action itself.

Each IF action must be paired with an END IF action. The END IF action marks the end of the conditional block begun by the corresponding IF action.

A conditional block is therefore defined as the series of actions between an IF action and the corresponding END IF action.

Here's an example of a simple conditional block:

NOTE |
 | The actions in a conditional block are usually indented to help set them apart visually from other actions.

If an IF action's condition evaluates to a true result, all of the actions between the IF action and the next corresponding END IF action are performed. If an IF action's condition evaluates to a false result, the conditional block is "skipped," and the next action after the END IF action is performed.

For instance, in the preceding example, the message "The value of the variable is five!" would only be shown if the value in the variable %VariableBeingTested% was 5.

Conditional blocks can be nested, which is to say that you may begin and end one conditional block within another.

For example:

In this example, the first IF action matches up with the last END IF action, and the second IF action matches up with the first END IF action. The second IF action that tests %FavoriteSong% to see if it contains the string "PenniesFromHeaven" would only be performed if %FavoriteMusic% contained the string "Jazz".

WHILE and END WHILE

The WHILE action begins what's known as a while loop. A while loop is simply a series of actions that will be performed repeatedly for as long as a condition is met. In this case, the condition is an expression entered on the Action Properties dialog for the WHILE action itself.

Each WHILE action must be paired with an END WHILE action. The END WHILE action marks the end of the loop begun by the corresponding WHILE action.

A while loop is therefore defined as the series of actions between a WHILE action and the corresponding END WHILE action.

Here's an example of a short while loop:

NOTE |
 | The actions in a while loop are usually indented to help set them apart visually from other actions.

If a WHILE action's condition evaluates to a true result, all of the actions between the WHILE action and the next corresponding END WHILE action are performed. When the END WHILE action is reached, Setup Factory goes back to the corresponding WHILE action and evaluates its condition again. The actions between the WHILE and the corresponding END WHILE continue to "loop" in this fashion until the WHILE action's condition evaluates to a false result. When that happens, the actions in the while loop are "skipped," and the next action after the END WHILE action is performed.

For instance, in the preceding example, the while loop would be performed repeatedly for as long as the value in the variable %counter% was less than 5. Since %counter% is set to 1 before the while loop and incremented by 1 before the END WHILE action, this while loop would be performed four times. The result of the loop would be four directories created in %AppDir%, named:

Folder 1
Folder 2
Folder 3
Folder 4

NOTE |
 | Each trip through a while loop is called an "iteration."

Like conditional blocks, while loops can also be nested, which is to say that you may begin and end one loop within another. For example:

In this example, the inner loop would be performed 5 times during each trip through the outer loop. At the end of the last iteration through the outer while loop, the variable %a% would equal 100.

Label and GOTO Label

The Label action is used to assign a name to a specific line in an action list. This name or "label" can then be used as the destination for a GOTO Label action.

The GOTO Label action can be used to "jump" directly to the line occupied by a specific label in the same action list. You can use a GOTO label action to "skip" over other actions. For example:

In this example, the Show Message Box action will never be performed, because the GOTO Label action causes Setup Factory to jump directly to the label named "Target".

Although GOTO Label actions have no intelligence of their own, you can place them in conditional blocks to make jumps that are only performed when certain conditions are met. For example:

In this example, the GOTO Label action is only performed if the user's system is connected to the Internet.

Abort

The Abort action immediately aborts the installation process and exits the installer. This has a similar effect to the user pressing the Cancel button. (The Cancel button asks the user to confirm before exiting; the Abort action doesn't ask, but instead just exits immediately.)

An example of where you might want to use an Abort action is in a custom error handler, after an irrecoverable error has been encountered.

See Also: Alphabetical List of Actions, Categorical List of Actions


Packages

Packages are special categories that you can define in order to group related files together. They're often used as part of a "custom" installation option, presenting optional components and letting users choose which parts of an application they want to install on their system.

You can have as many packages in a Setup Factory project as you want. Each package has a name and an optional description that you can use to provide information about the package to your users. This information will appear on the Select Packages screens that you can include in your installer. The Select Packages screens allow your users to select which packages they want to install.

Each file in a Setup Factory project can be assigned to one or more packages. When a file is assigned to a package, it will only be installed if the user selects that package at run time. In other words, when users choose a package, they automatically enable the installation of all the files that belong to it.

NOTE |
 | A file that is assigned to a package is said to "belong" to that package.

Package Variables

Each package has a unique custom variable that can be set to either true or false. When the user chooses to enable a package, that package's variable is set to "true". If the user chooses not to enable a package, that package's variable is set to "false".

When you add a Select Packages or Select Install Type screen to your installer, you're really just giving the user an easy way to set the package variables to true or false.

These true or false values are what determine whether the files assigned to each package are installed. When a package variable is set to "true", any files associated with that package will be installed. If a package variable is set to "false", the files associated with that package won't be installed, unless they also belong to another package whose variable is set to true.

NOTE |
 | Files assigned to a single package are only installed if that package's variable is set to "true". Files assigned to multiple packages are installed if any of the packages' variables are set to "true".

Packages and run-time conditions

Assigning a file to a package is just like setting a run-time condition for the file.

In fact, you could completely duplicate the functionality of packages by using equivalent run-time conditions.

For example, if you have a package called "Extra Stuff" and it uses a package variable named %PackageExtraStuff%, assigning a file to that package is a lot like adding the following run-time condition to the file:

%PackageExtraStuff% = TRUE

Of course, run-time conditions don't have easily localized names and descriptions like packages do. Assigning a run-time condition to a file also doesn't add that file's size to the package size shown on the Select Packages screen at run time.

TIP |
 | If you ever want to assign a file to a package without having the file's size affect the package size, set up a run-time condition instead. That way, the file will still only be installed if the package variable is set to true, but its size won't affect the package size shown on the Select Packages screen.

See Also: Packages dialog, Naming Package Variables, Install Types


Naming Package Variables

Because each package requires a unique custom variable name, it's a good idea to establish a naming convention for your package variables. (A naming convention is a set of rules that you follow when forming a name for something.) We recommend that you use the following naming convention for your package variables:

%<prefix><package name>%

In other words, begin each package variable with a prefix like %Package or %Package_ followed by the name of the package and a percentage sign. If the package name contains spaces, either remove them or replace them with underscores (_).

For example, if the package name is "Extra Help Files", a good name for the package variable would be something like %PackageExtraHelpFiles% or %Package_Extra_Help_Files%.

Forming a variable name based on the name of the package not only makes it easier to come up with appropriate names, it makes it easier to determine what variable name was used for an existing package.

NOTE |
 | Using numbers to make variable names unique isn't recommended; it's difficult to know at a glance what package a variable name like %Package1234% represents.

Whichever naming convention you adopt, the most important thing is to name your package variables consistently throughout your project.

See Also: Packages, Packages dialog


Using Packages

Using packages in your Setup Factory project involves three simple steps:

1. Create the packages.

2. Assign files to the packages.

3. Add screens to your project so users can select the packages.

For example, let's say you include a set of tutorials with your application in the form of very large video files. Because these files are so large, you want your users to be able to choose whether or not to install them at run time. Here's how you could accomplish this by using packages:

First, you would use the Packages dialog to create a package for the video files. You would give the package an appropriate name like "Video Tutorial Files" and change the default variable name to something unique and easy to remember; a good name for this package's variable would be something like %Package_VideoTutorialFiles%.

You could also write a brief description to help your users decide whether they want to install the tutorial files, e.g. "Optional tutorial files in AVI video format. Windows MediaPlayer 6 or above is required in order to view these files."

Next, you would assign the video files to the package. To do this, you would select all the video files on the project window, press the File Properties button to access the Multiple File Properties dialog, and use the Packages tab to assign the files to the "Video Tutorial Files" package. Once this is done, the video files will only be installed if the value in %Package_VideoTutorialFiles% is set to "true".

Finally, you would use the Screens dialog to add a Select Packages screen to your project. The Select Packages screen is able to display any number of packages in a list, with check boxes that the user can use to turn the individual packages on or off. In order for the "Video Tutorial Files" package to appear on this screen, you need to add it to the list of packages that the screen will display. To do this, you would access the Custom tab of the Screen Properties dialog for the Select Packages screen, and add the "Video Tutorial Files" package to the list of available packages.

NOTE |
 | By default, the Select Packages screen will only be displayed if the "Custom" option is chosen on a preceding Select Install Type screen at run time. If you aren't using a Select Install Type screen, you will need to modify the screen condition for the Select Packages screen to remove this restriction. To do so, simply edit the expression in the Condition field on the Settings tab of the Screen Properties dialog for the Select Packages screen.

See Also: Packages, Packages dialog


Install Types

Not all of your users will want or need the degree of control over their installations that Setup Factory packages can provide them. And, true enough, some users should probably be protected from such advanced features. For this reason, many installers are designed to make packages optional, and simplify the user's decision by presenting streamlined choices in the form of install types.

There are four standard install types traditionally provided by installers:

Typical

A Typical install type should install a balanced set of features-the options you believe most users will want or need. Although it varies with the software you're installing, a Typical installation generally includes most of the files in your project. However, a Typical installation might exclude, for example, special drivers that only a limited number of users need, extra sample files, and extra documentation written for software developers (SDKs).

Complete

A Complete install type should install everything.

Minimum

A Minimum install type should only install files that are absolutely essential. This "bare minimum" installation would general be used when installing your software to a computer with a minimum of disk space (e.g. a laptop).

Custom

A Custom install type should allow the user to choose which individual packages are installed. Custom installations are most often used by "power users" who know what they are doing and want full control over what gets installed on their system.

In Setup Factory, install types are handled entirely by the Select Install Type screen. Each Select Install Type screen supports up to four install types. Adding, removing, configuring, and naming install types are all done directly on the Custom tab of the Screen Properties dialog for the Select Install Type screen.

You can think of install types as package "presets." Each install type will automatically enable or disable specific packages in your project, turning them individually on or off according to the Select Install Type screen settings.

When the user selects an install type on a Select Install Type screen, the name of the selected install type is assigned to a custom variable. You can use this variable in screen conditions to make some screens only appear if a specific install type was selected.

For example, the Select Packages screen has the following screen condition by default:

"%InstallType%" = "Custom"

This screen condition effectively hides the Select Packages screen unless the user selects the "Custom" install type on the Select Install Type screen. So, by default, the "Custom" install type appears to lead to a screen with more advanced customization options.


Variables

Variables are special named "containers" for values that change. (The word "variable" comes from the changing nature of the values that variables represent.)

We say that values are "assigned to" or "stored in" variables. If you picture a variable as a container that can hold a value, assigning a value to a variable is like "placing" that value into a container. You can change this value at any time by assigning a new value to the variable; the new value simply replaces the old one. This ability to hold changeable information is what makes variables so useful.

Variable names in Setup Factory always begin and end with a percentage sign. At design time these variable names serve as placeholders, marking the places where the values will go once those values become known.

Wherever you use a variable like %CompanyName% in Setup Factory, the user will see the value that was assigned to that variable instead. (In this case, the user would see the value you specified for your company name on the Product Info tab of the General Design screen, i.e. some text like "Foobar Widgets and Gadgets Corp.")

NOTE |
 | Normally, the user never sees the variable names-just the values they represent. (The exception is when a variable gets used before a value is assigned to it. In that case, the name of the variable is shown where the value would have appeared.)

There are two kinds of variables in Setup Factory: built-in variables, and custom variables.

See Also: Naming Variables, Defining Variables with Actions, Defining Variables with Screens, What Can You Do With Variables?


What Can You Do With Variables?

Variables offer a lot of flexibility. You can use variables in the following ways:

  1. You can use them to receive user input on screens with edit fields, list boxes, radio buttons, check boxes, and buttons.

  2. You can use them to receive information from the Registry with a Read from Registry action, or to receive information from an INI file with a Read from INI File action.

  3. You can use them in conditional expressions to set up run-time install conditions that determine whether individual files are installed.

  4. You can use variables in the messages that get displayed on screens.

  5. You can use them in screen conditions that determine whether individual screens are displayed.

  6. You can use variables as temporary storage when manipulating strings with string actions.

  7. You can use them in conditional expressions to set up conditional blocks and loops with IF and WHILE actions.

  8. You can load the contents of a text file into a variable using a Read Text File action.

  9. You can use actions to write their values to the Registry, to INI files or to text files.

  10. You can use them in expressions to perform calculations on data retrieved from the user's system.

  11. You can use them wherever you need to provide a path.

  12. Basically, anywhere that you can enter text, you can use variables.

See Also: Variables, Defining Variables with Actions, Defining Variables with Screens


Built-in Variables

Built-in variables are automatically provided for you by Setup Factory. They are used to represent common values that might differ between systems, like the location of the user's temp directory (%TempDir%) or the width of the user's display screen in pixels (%ScreenWidth%). These variables serve as pre-defined constants that you can use in the paths and conditional expressions within your Setup Factory project.

There are also built-in variables for things like your product name (%ProductName%) and copyright notice (%Copyright%). These variables are automatically defined to match the information you provide in the various fields on the Product Info tab of the General Design dialog. You only have to change these values in one place (in this case, on the Product Info tab), and wherever those variables are used in your setup, the new values will be shown automatically.

Finally, there are built-in variables you can use in action lists to get information about the last action that was performed (%LastCommand%), and in the case of an error, to get information about the type of error that occurred (%LastErrorNum%, %LastErrorMsg% and %LastErrorDetails%).

NOTE |
 | There are also built-in design-time constants. Design-time constants are special variables that are converted to values at build time, instead of at run time.

TIP |
 | You can insert built-in variables into most text entry fields in Setup Factory by right-clicking on the field and selecting Insert | Variable from the context menu.

%AppDir%

Your application's main directory, where all of your files and folders will be installed. For example, by default Setup Factory's main directory is C:\Program Files\Setup Factory 6.0.

%AppDir% is initially set to the default value that you give it on the Settings tab of the General Design dialog (in the Variable Defaults section). However, in most installations, the value of %AppDir% will ultimately be set by the user on the Select Install Folder screen, overriding the default value.

%AppDrv%

The drive letter of %AppDir%. You should not set this variable explicitly. It is reset every time that %AppDir% is re-assigned. For example, if %AppDir% is C:\Program Files\My Program, %AppDrv% will be C:.

%BDEPath%

The user's BDE (Borland Database Engine) directory.

%ColorDepth%

The color depth of the user's video display, in bits per pixel.

%CommonFiles%

The user's Common Files directory. Typically, this is something like:

C:\Program Files\Common Files

%CompanyName%

Your company’s name. The value of this variable is set in the Company name field on the Product Info tab of the General Design dialog.

%Copyright%

The copyright message for your product. The value of this variable is set in the Copyright notice field on the Product Info tab of the General Design dialog.

%CurrentDay%

A number representing the current day of the month, calculated when the setup begins.

%CurrentHour%

A number representing the current hour in 24-hour time (e.g. 4:00 PM is 16), calculated when the setup begins.

%CurrentMinute%

The current minute, calculated when the setup begins. This number is always expressed with two digits, so 4 minutes into the hour will be "04".

%CurrentMonth%

A number representing the current month, calculated when the setup begins. January is represented by "1" and December is represented by "12".

%CurrentSecond%

The current second, calculated when the setup begins. This number is always expressed with two digits, so 4 seconds into the minute will be "04".

%CurrentYear%

The four-digit number representing the current year, calculated when the setup begins.

%DAOPath%

The path to the user's DAO (Data Access Objects) directory.

%Date%

The current date on the user's system when the setup executable is run. It is in the format MM/DD/YY. So, if the user ran the installer on May 23, 2002, %Date% would be "05/23/02".

%DeskTop%

The path to the user's Desktop directory. On Windows NT, this is the path from the per-user profile.

%DeskTopNT%

The path to the user's Desktop directory. On Windows NT, this is the path from the All Users profile.

%DoReboot%

Whether or not Setup Factory should restart the system at the end of the installation process. If set to "TRUE", the system will be rebooted, if anything else it will not be.

Note: This variable is also used by the uninstaller. So, if %DoReboot% is set to "TRUE" during the uninstall, the user's system will be rebooted after the uninstall is complete.

%EuropeanDate%

The current date in the the European dating format: DD/MM/YY. For example, if the user ran the installer on May 23, 2002, %EuropeanDate% would be "23/05/02".

%FontDir%

The path to the user’s font directory (e.g. "C:\Windows\Fonts").

%InfoURL%

The URL to a web site where the user can find more information about your product. The value of this variable is set in the Information URL field on the Product Info tab of the General Design dialog.

%ISODate%

The current date in the ISO format: YYYY-MM-DD. For example, if the user ran the installer on May 23, 2002, %ISODate% would be "2002-05-23".

%IsUserNTAdmin%

This variable is set to "TRUE" if the user running the setup is currently logged into Windows NT/2000/XP with Administrator permissions. It's set to "FALSE" otherwise. On systems that aren't running some version of Windows NT, this variable is always set to "FALSE".

%IsWin95%
%IsWin98%
%IsWinME%
%IsWinNT3%
%IsWinNT4%
%IsWin2000%
%IsWinXP%

These variables have a value of "TRUE" or "FALSE" depending on whether the setup is running on the respective operating system.

%JulianDate%

An integer value representing the number of days since midnight on January 1, 4713 B.C. Very useful when comparing dates or performing arithmetic to determine the number of days between two dates.

%LANDomain%

The domain that the user is logged in to. If the user's system is not connected to a LAN, this variable will default to "UNKNOWN".

%LANHost%

The user's local computer name. If the user's system is not connected to a LAN, this variable will default to "UNKNOWN".

%LANIP%

The user's IP address on the local network. If the user's system is not connected to a LAN, this variable will default to "UNKNOWN".

%LANNIC%

The MAC address of the user's NIC (network interface card). If the user's system does not contain a network card, this variable will default to "UNKNOWN".

%LANUser%

The user name that the user is currently logged in as. If the user's system is not connected to a LAN, this variable will default to "UNKNOWN".

%LastCommand%

The ID of the last action that was performed. (See the specific actions in this help file for their respective action IDs.) This number can be useful when building a custom error-handling routine with server file actions.

%LastErrorDetails%

If an error is generated at run time, this variable is set to the "verbose" error message for the last action that was performed (the action that generated the error).

When an action doesn't generate an error, this variable is empty ("").

SEE ALSO |
? | For a complete list of the verbose error messages which can be generated by each action, see the specific actions in this help file.

%LastErrorMsg%

If an error is generated at run time, this variable is set to the "simple" error message for the last action that was performed (the action that generated the error).

When an action doesn't generate an error, this variable is empty ("").

SEE ALSO |
? | For a complete list of the simple error messages which can be generated by each action, see the specific actions in this help file.

%LastErrorNum%

If an error is generated at run time, this variable is set to an action-specific error number that identifies the last error that occurred.

When an action does not generate an error, this variable is set to 0.

SEE ALSO |
? | For a complete list of the error numbers associated with each action, see the specific actions in this help file.

%MousePresent%

Whether or not a user has a mouse connected to their system. This variable is set to "True" if the user has a mouse connected to their system; otherwise, it's set to "False".

%MyDocumentsDir%

The user's personal (My Documents) folder on their system. Usually this is something like "C:\Documents and Settings\YourName\My Documents" on Windows 2000/XP and "C:\My Documents" on Windows 98/ME. Note that Windows 95 did not have the My Documents folder and this variable will return "C:" if run on such a system.

%NeedsReboot%

Whether or not the system needs to be restarted at the end of the setup process in order to install files that were in use. This is set to "TRUE" when the system needs to be restarted, and set to "FALSE" when the system doesn't.

%PreventNextPage%

This is a special variable that can be set on a screen's Before or After action tabs. If this variable is set to TRUE, the installer will not allow the user to proceed to the next screen when the Next button is clicked; instead, the user will remain on the current screen. If set to FALSE, the installer will allow the user to proceed normally when they click Next.

This variable is useful if you want to validate the data entered by the user on a screen. If the data is incorrect, you could display an error message and set %PreventNextPage% to "true" to make the user go back and enter valid data.

The value of %PreventNextPage% is reset to FALSE every time a screen is displayed.

%ProductName%

The name of the product that you are installing. The value of this variable is set in the Product name field on the Product Info tab of the General Design dialog.

%ProductTagline%

The tagline for the product that you are installing. The value of this variable is set in the Product tagline field on the Product Info tab of the General Design dialog.

%ProductVer%

The version of the product that you are installing. The value of this variable is set in the Version field on the Product Info tab of the General Design dialog.

%ProgramFiles%

The path to the user's Program Files directory. Typically, this is "C:\Program Files".

%RegOwner%

The name of the registered user of the system.

%RegOrganization%

The organization of the registered user of the system.

%SCFolderPath%

The full path and name of the shortcut folder on the Start menu where your application's shortcuts will be stored.

%SCFolderTitle%

The name of the shortcut folder on the Start menu where your application's shortcuts will be stored.

%ScreenHeight%

The user’s screen height in pixels.

%ScreenWidth%

The user’s screen width in pixels.

%SetupCmdLineArgs%

The command line arguments that were passed to the setup executable in their full form. In other words, a string consisting of everything after the filename and extension of the setup executable on the command line.

For example, if the following was run:

C:\setup.exe /L:12 /MYARG

%SetupCmdLineArgs% would contain:

/L:12 /MYARG

%ShowActionProgressDlg%

This variable controls whether or not the Action Progress dialog is visible. If this variable is set to TRUE, the Action Progress dialog will be visible. If it's set to FALSE, the Action Progress dialog won't be visible.

Note: This variable has no affect during the uninstall.

%ShowFileCalcProgressDlg%

This variable controls whether or not the Calculating File Information dialog is visible. If this variable is set to TRUE, the Calculating File Information Progress dialog will be visible. If it's set to FALSE, the Calculating File Progress dialog won't be visible.

%SilentMode%

Whether or not the installer (or uninstaller) is running in silent mode. This variable is set to "TRUE" when the installer (or uninstaller) is running in silent mode; otherwise, it's set to "FALSE".

%SrcDir%

The full path to the folder that the setup executable was run from (e.g. "C:\Downloads").

%SrcDrv%

The drive that the setup executable was run from (e.g. "C:").

%SrcFile%

The full path, including the filename, for the current setup executable.

For example, if the user was running "setup.exe" from "C:\Downloads", %SrcFile% would be expanded to "C:\Downloads\Setup.exe".

%SoundCardPresent%

Whether there is a sound card installed on the user's system. Set to either "TRUE" or "FALSE".

%StartMenu%

The path to the user's Start menu directory. On Windows NT, this is the path from the per-user profile.

%StartMenuNT%

The path to the user's Start menu directory. On Windows NT, this is the path from the All Users profile. On a non-Windows NT system, this will simply be the path to the user's Start menu directory.

%StartMenuPrograms%

The path to the Programs folder in the user's Start menu. On Windows NT, this is the path from the per-user profile.

%StartMenuProgramsNT%

The path to the Programs folder in the user's Start menu. On Windows NT, this is the path from the All Users profile. On a non-Windows NT system, this will simply be the path to the Programs folder in the user's Start menu.

%Startup%

The path to the user's Startup folder. On Windows NT, this is the path from the per-user profile.

%StartupNT%

The path to the user's Startup folder. On Windows NT, this is the path from the All Users profile. On a non-Windows NT system, this will be the path to the user's Startup folder.

%SysDir%

The path to the user’s Windows System directory (e.g. "C:\Windows\System").

%SysDrv%

The drive that the user's Windows System directory is located on (usually "C:").

%SysLanguage%

The user's system language ID . A complete list of language IDs can be found in the "Langids.ini" file in the "Data" sub-directory of your Setup Factory 6.0 directory. This value determines which language file and which screens will be displayed during the setup. If your setup does not support the user's language, %SysLanguage% will be set to the ID of your default language as set on the Languages tab of the General Design dialog.

%SystemRAM%

The amount of physical memory on the user's system in megabytes.

%TempDir%

The path to the user's Temp directory.

%TempLaunchDir%

The path to the temporary directory where Setup Factory extracts the files it will need for the installation. (For example, this is the directory where Primer files are extracted to.)

Usually this directory will be the user's temporary directory, unless the user overrides the temporary directory with the /T command line option.

%WinDir%

The path to the user’s Windows directory (e.g. "C:\Windows").

Design-time Constants

Design-time constants are similar to variables, but instead of being converted to values at run time, design-time constants get converted at build time. We call them design-time constants because the names you give them only exist at design time. At build time, the name of each design-time constant is replaced by the value that was assigned to it.

#ASC????#

This is a special set of design-time constants. When a constant's name starts with "#ASC", Setup Factory interprets the value assigned to that constant as the ASCII value of a character. Wherever you use that constant, Setup Factory replaces the constant's name with the corresponding character.

For example, if you create a design-time constant named #ASC_QUOTE# and assign the value "34" to it, Setup Factory would replace each occurence of #ASC_QUOTE# in your project with the character whose ASCII number is 34, i.e., a quotation mark ("). Or, you could create a design-time constant to represent the null character (ASCII value 0) by assigning the value "0" to "#ASCNULL#".

#CURRENTDAY#

A number representing the current day of the month, calculated when the setup executable is built.

#CURRENTHOUR#

A number representing the current hour in 24-hour time (e.g. 4:00 PM is 16), calculated when the setup executable is built.

#CURRENTMINUTE#

The current minute, calculated when the setup executable is built. This number is always expressed with two digits, so 4 minutes into the hour will be "04".

#CURRENTMONTH#

A number representing the current month, calculated when the setup executable is built. January is represented by "1" and December is represented by "12".

#CURRENTMONTH2#

A two-digit number representing the current month, calculated when the setup executable is built. January is represented by "01" and December is represented by "12".

#CURRENTSECOND#

The current second, calculated when the setup executable is built. This number is always expressed with two digits, so 4 seconds into the minute will be "04".

#CURRENTYEAR#

The four-digit number representing the current year, calculated when the setup executable is built.

#DATE#

The current date on your development system when the setup executable is built. It's in the format MM/DD/YY. So, if you built the installer on May 23, 2002, #DATE# would be "05/23/02".

#EUROPEANDATE#

The current date on your development system when the setup executable is built, in the the European dating format: DD/MM/YY. For example, if you built the installer on May 23, 2002, #EUROPEANDATE# would be "23/05/02".

#ISODATE#

The current date on your development system when the setup executable is built, in the ISO format: YYYY-MM-DD. For example, if you built the installer on May 23, 2002, #ISODATE# would be "2002-05-23".

#JULIANDATE#

The current date on your development system when the setup executable is built, in the form of an integer value representing the number of days since midnight on January 1, 4713 B.C.

You can use #JULIANDATE# along with the built-in variable %JulianDate% to build setups that expire a certain number of days after they are created. To calculate the number of days that have elapsed since the setup executable was generated, use the formula %JulianDate% - #JULIANDATE#.

#PROJECTFILEDIR#

This is path to the Setup Factory 6.0 project (.SF6) file that you are currently editing. Your project file must be saved in order for this variable to be properly set. If you have not saved your document, this constant will be set to "C:" by default.

This constant is useful if you want to keep your project (.SF6) file and the files in your setup in the same directory. That way you can set #PROJECTFILEDIR# as the files' source directory and your project will be portable to different development systems where paths and drives may change.

#SUFDIR#

The path to the directory where Setup Factory is installed on your development system. Usually this will be "C:\Program Files\Setup Factory 6.0".

#SYSDIR#

The path to the system directory on your development system.

#WINDIR#

The path to the Windows directory on your development system.

See Also: General Design, Actions


Custom Variables

Custom variables are not built into Setup Factory - instead, they're created whenever you specify a new variable name to receive a value.

Custom variables can be used to receive user input, such as the user's email address or phone number. They can also be used to receive information from the Registry or INI files, such as the path where a given software component is installed on the user's system. For instance, you would use a custom variable when you query the Registry for information that was put there by another application.

You can even make the way your installer operates depend on the values of specific variables. Using variables, you could install different files if a certain registry key exists, or skip a screen based on the user's input on the screen before.

Defining custom variables is easy - you just provide a variable name where a variable name is required.

There are three places in Setup Factory where you can define custom variables:

Screen Properties dialogs

You can define variables to store the information received as a result of user input on many of the screens that you can include in your installer.

Action Properties dialogs

You can define variables using many of the actions in Setup Factory. These variables only come into effect as each action is performed.

Package Properties dialogs

You can define variables by setting up packages. Each package needs a unique custom variable that will be set to either true or false depending on whether the user selects or deselects that package.


Naming Variables

You can name your custom variables anything you like, but there are a few guidelines to follow:

  1. All variable names should begin and end with a percentage sign (%).

  2. Variable names are not case sensitive-the names %MyVar% and %myvar% both refer to the same variable.

  3. Don't use the same variable name twice unless you mean to.

    Using a name twice is fine if you're defining a variable in one place, and using it in another. Just be careful not to unintentionally give the same name to two different variables if they're being used to represent two different things.

    Of course, it's okay to define a variable twice if you want its value to change. In that case, the first value will only be in effect until the second one "overwrites" it.

  4. Don't use a built-in variable name for one of your custom variables unless you know what you're doing.

    For example, calling a variable %SysDir% would override the built-in variable with the same name. Take time to familiarize yourself with the built-in variable names so you don't use any of them by accident.

  5. Try to use meaningful names.

    For example, if you read a product's installation date from the Registry, naming the variable %Greegleborg452sx% probably isn't a good idea. Use a variable name like %InstallDate% instead.

  6. Be consistent.

    If you start out with %UserName% and %UserAge%, don't name your third variable %WhereTheUserGoesToWork%. A name like %UserCompanyName% will be easier to remember when you find yourself asking "what did I name that variable, again?"

  7. When in doubt, double-check.

    A common mistake is to name a variable one thing in one part of Setup Factory, and start calling it something else later. If you're not sure what name you used, double-check by going back to the screen where you defined the variable.

See Also: Variables, Built-in Variables, Custom Variables, A Little Common Sense Never Hurts


Defining Variables with Actions

Many of the actions in Setup Factory produce results that must be stored in variables. For example, the Read from Registry action reads a value from the Registry, and assigns that value to the variable of your choice. The value that is read from the Registry is the action's result, and the variable is where that result is stored.

Each of these actions has a field where you can provide the name of the variable you want the result to be stored in. If you provide the name of an existing variable, the result will overwrite that variable's contents. If you provide a new variable name, a new variable will be created automatically. The action's result will be stored in the variable you provide, regardless of whether the variable already exists.

Essentially, wherever a result needs to be stored, you can create a new variable "on the fly" by simply providing a variable name that isn't already being used in your project.

See Also: Variables, Defining Variables with Screens, What Can You Do With Variables?


Defining Variables with Screens

Many of the screens in Setup Factory can receive input from the user. Whether that input is in the form of text entered in an edit field, or the checked or unchecked nature of a check box, it needs to be stored in a variable so it can be used by rest of the installer.

For example, the default User Information screen prompts the user to enter their name and their company's name into a pair of edit fields, and assigns the value of each field to the variable of your choice. The text that the user enters into each field is the value that will be assigned to the corresponding variable.

Another example: a variable is required for each check box on a Check Boxes 12 screen. When the user selects a check box, the value "true" is assigned to the corresponding variable. If the user deselects that check box, the value "false" is assigned to the variable instead. In other words, each check box has a variable that is set to either true or false to represent whether the check box was selected or not.

For every item on a screen that can receive user input, there is a field where you can provide the name of the variable you want the result to be stored in. If you provide the name of an existing variable, the result will overwrite that variable's contents. If you provide a new variable name, a new variable will be created automatically. The result of the user's input will be stored in the variable you provide, regardless of whether that variable already exists.

TIP |
 | You can display the contents of a variable on a screen by including the variable name in the screen's message text.

See Also: Variables, Defining Variables with Actions, What Can You Do With Variables?


A Little Common Sense Never Hurts

When defining and using variables, be sure to think about when and where they will be used, and what their values will be at that point in time. A variable that is only assigned a value at the end of the installation process won't have a value at the start.

For example, let's say you set up a User Information screen that asks the user for their name and stores it in a variable called %UserName%. It's important to realize that %UserName% won't contain the user's name until after that screen is shown. If the User Information screen is only displayed at the end of the installation process, %UserName% won't have a value at the beginning when your Welcome screen is shown. In this case, including %UserName% in the text of your Welcome screen would result in a message like "Hello %UserName%" instead of a message like "Hello Mary Lou."

The same is true for variables that you define on action tabs. When you assign a value to a variable using an action, the value doesn't get assigned to the variable until the moment the action is performed. A variable that you define on an action tab is only available to the actions that are listed below it on the tab, and to the actions on tabs that are performed "later" in the installation process. If you try to use the variable in another action higher "up" on the action tab, or on an action tab that happens earlier in the installation process, the variable won't have a value yet, and your installer probably won't work properly.

In other words, when you define a variable with an action, it is only available to the parts of the installation that are performed after that action. If you want to use a variable in a screen condition to control whether that screen is shown, make sure a value is assigned to the variable before it's that screen's turn to be displayed. If you want to use a variable in a run-time install condition, make sure a value is assigned to the variable before all the files are installed.

See Also: Variables, Defining Variables with Actions, Defining Variables with Screens, What Can You Do With Variables?


Expressions

An expression is any valid combination of values and operators that resolves to a single result. For instance, in the expression 1 + 2, "1" and "2" are values, "+" is the add operator, and the resulting value would be 3.

You can use expressions to perform calculations, compare values, set conditions and make decisions at run time.

SEE ALSO |
? | For details on the usage and syntax of expressions, please see Chapter 15: Expressions in the User's Guide.

There are five places where expressions can be used in Setup Factory: in build-time conditions, in run-time conditions, in screen conditions, in conditions for IF and WHILE actions, and in Assign Value actions.

See Also: Conditional Expressions, Values, Operators


Conditional Expressions

Conditional expressions are just like other expressions, but their results are interpreted as Boolean (true/false) values. In other words, the result of a conditional expression is always either true or false.

You can use conditional expressions in build-time conditions, run-time conditions, screen conditions, and IF and WHILE actions.

See Also: Expressions, Boolean Values


Boolean Values

Boolean Values (True and False)

Boolean values are used to describe logical truths - whether something is "true" or "false." In fact, true and false are the only two possible Boolean values.

Boolean values are often used to describe the results of logical comparisons like "10 > 5" and "tree = dog." We say that "10 > 5" is true, because 10 is greater than 5. We say that "tree = dog" is false, because the string "tree" is not equal to the string "dog."

In Setup Factory, an expression is considered true if it resolves to either the word "true", any non-zero integer value (such as "1" or "41395"), or any real number that is greater than 1.0 or less than -1.0. An expression is considered false if it resolves to anything else-in other words, an expression is false if it resolves to the number 0, the number 0.9, or any string other than "true" (such as "false" or "raspberry").

NOTE |
 | True and false are also used symbolically to represent yes/no and on/off in Setup Factory. For instance, when a check box is checked, its variable is set to True, and when it's unchecked, its variable is set to False.


Values

There are five kinds of values that you can use in Setup Factory expressions: integers, real numbers, strings, versions and variables.

Integers

Integers consist of whole numbers, like 1, -32516 and 475. They can be written with or without quotation marks, e.g. "341" and 341 are equivalent.

Real Numbers

Real numbers consist of "fractional" or "floating point" values, like 0.594, -1.5 and 123.654. They can be written with our without quotation marks - for example, "0.5" and 0.5 are equivalent. Any leading zero can be omitted as well, so, for example, ".75" and "0.75" are equivalent.

Strings

Strings consist of any sequence of characters surrounded by quotation marks, like "Wilbur", "the 25 happiest days of summer" and "hello world".

Versions

Versions are special strings that begin with the letter "v" followed by numbers which can be separated by one or more periods. (If there are two or more periods, the letter "v" can be omitted.) Examples: "v2", "v4.0", "v1.03", "0.2.0.0", and "6.0.1".

Variables

You can use variable names as placeholders for integers, strings or versions in an expression.

See Also: Expressions, How Values Are Stored


How Values Are Stored

All values are stored internally as strings. It's the content of the strings that determines how they're interpreted at run time.

A string containing only numeric characters is considered an integer when it's used in an expression. A string consisting of numbers and a single decimal point is considered a real number. A string consisting of numbers separated by 2 or more decimal points is considered a version. A string that begins with the letter "v" followed by numbers (that may or may not be separated by decimal points) is also considered a version. Anything else is assumed to just be a string.

See Also: Expressions, Values


Operators

Operators are used in expressions to perform specific actions on one or more operands, generating a single return value or result. Operands are simply the values or expressions that each operator operates on. For instance, in the expression 1 + 2, the values "1" and "2" are the operands, and "+" is the symbol for the add operator.

Operators are said to have precedence, which is a way of describing the rules that determine which operations in a series of sub-expressions get performed first. A simple example would be the expression 1 + 2 * 3. In Setup Factory, the multiply (*) operator has higher precedence than the add (+) operator, so this expression is equivalent to 1 + (2 * 3). In other words, the sub-expression 2 * 3 is performed first, and then 1 + 6 is performed, resulting in the final value 7.

You can override the natural order of precedence by using parentheses. For instance, the expression (1 + 2) * 3 resolves to 9. The parentheses make the whole sub-expression 1 + 2 the left operand of the multiply (*) operator. Essentially, the sub-expression 1 + 2 is evaluated first, and the result is then used in the expression 3 * 3.

Operators are also said to have associativity, which is a way of describing which sub-expressions are performed first when the operators have equal precedence. In Setup Factory, most operators are left associative, which means that whenever two operators have the same precedence, the operation on the left is performed first. (The only exceptions are the unary plus, the unary minus, and the logical NOT operators, all three of which are right-associative.)

The left-associativity of the subtract (-) operator is why the expression 10 - 5 - 2 resolves to 3 instead of 7. It's interpreted as (10 - 5) - 2, and not 10 - (5 - 2).

SEE ALSO |
? | For details on the usage and syntax of expressions, please see Chapter 15: Expressions in the User's Guide.

See Also: Expressions, Values, How Values Are Stored, Operator Precedence and Associativity


Operator Precedence and Associativity

The following operators can be used in Setup Factory expressions:

Notes: | A unary operator takes a single value.
 | A binary operator takes two values.
 | A right-associative operator operates on the value to its right.
 | An infix operator operates on one value to its left and one value to its right.
 | (All infix operators in Setup Factory are left-associative.)

In order of precedence, from highest to lowest:

 | Name: | Notes: | Precedence Level:
( | open parenthesis |  | 8 (highest)
) | closed parenthesis |  | 8
+ | unary plus | unary, right-associative | 7
- | unary minus | unary, right-associative | 7
! | logical not | unary, right-associative | 7
* | multiply | binary, infix | 6
/ | divide | binary, infix | 6
MOD | modulus | binary, infix | 6
+ | add | binary, infix | 5
- | subtract | binary, infix | 5
< | less than | binary, infix | 4
<= | less than or equal | binary, infix | 4
> | greater than | binary, infix | 4
>= | greater than or equal | binary, infix | 4
= | equal | binary, infix | 3
!= or <> | not equal | binary, infix | 3
AND | Boolean AND | binary, infix | 2
OR | Boolean OR | binary, infix | 1 (lowest)

SEE ALSO |
? | For details on the usage and syntax of expressions, please see Chapter 15: Expressions in the User's Guide.

See Also: Expressions, Operators


Notes

Notes on Using Expressions

  1. Anything between quotes (""), including whitespace, is considered a single value.

  2. An expression is considered true if it resolves to either the word "true" or any non?zero integer value. An expression is considered false if it resolves to anything else.

  3. A real number is considered true if it is greater than or equal to 1.0, or less than or equal to -1.0. In other words, if a real number falls between -1.0 and 1.0, it's false. For example, 1.0 is considered true, and 0.99999 is considered false.

  4. The strings "true" and "false" can be used to represent the two Boolean values in Setup Factory expressions. For example, the expression true or false is equivalent to the expression 1 or 0. Both expressions resolve to 1.

  5. True" and "false" are not case sensitive. "True", "true", "tRuE" and "TRUE" all resolve to 1. "False", "false", "fAlsE" and "FALSE" all resolve to 0.

  6. Non-quoted strings are delimited by whitespace and any of the operators except MOD, AND and OR. For instance, sandy is seen as the single value "sandy" and not the expression "s and y".

  7. You can perform string concatenation with the add operator ('+').

  8. You can compare strings alphabetically using the <, <=, >, >=, =, != and <> operators.

  9. String comparisons are case insensitive. "Hello world" is equal to "hEllO WoRlD" in Setup Factory.

  10. You can "multiply" strings with an integer value. (2 * "Ha" resolves to HaHa)

  11. You can "strip" every occurrence of one string from another with the subtract operator ('-').

  12. All stand-alone strings except "true" resolve to 0 (false) when a Boolean result is expected. For instance, the expression "hello" resolves to 0 (false) when used alone in an IF statement.

  13. With the exception of "true", strings resolve to 0 (false) when used with the Boolean infix operators AND and OR. For instance, 1 AND "hello" is equivalent to 1 and 0 and resolves to 0 (false).

  14. Strings that begin with the letter "v" followed by only numbers and periods are interpreted as versions. A string consisting of only numbers separated by two or more periods is automatically considered a version even if the letter "v" is omitted.

  15. The "v" prefix is omitted from the result when a version calculation is performed. For example, v1.0 + v2.3 resolves to 3.3, and not v3.3.

  16. You can compare versions using <, <=, >, >=, =, != and <>, and you can perform "corresponding element addition" and "corresponding element subtraction" on them using + and -. "Version.revision" notation is assumed, so v1.1 + v1.9 is 2.10 ("the 10th revision of version 2"), not 3.0. After a calculation, any negative numbers in a version string are reduced to 0. For example, 2.3.5 - 7.1.6 resolves to 0.2.0.

See Also: Expressions, Operators, Values


Primer Files

Primer files are just regular files that get extracted from the setup executable before the installation process begins. This means you can use primer files at the very start of the installation process, right after the user runs the setup executable.

You can make any file a primer file simply by adding it to the Primer Files tab of the General Design dialog. The files on this tab will be included in the setup executable when you build the installer.

Primer files are automatically extracted to a temporary folder at run time. The path to this folder is stored in a built-in variable named %TempLaunchDir%. You should use this variable in actions that need to access your primer files.

Primer files make it easy to run a program on the user's system before the rest of your files are installed. Just add the program to the list of primer files, and execute it with an Execute File action early in the installation process.

For example, you might need to execute a custom program or DLL function before your software is installed-perhaps to perform some product-specific, low-level pre-installation tests on the user's hardware, and write the results to the Registry. By adding your custom program or .dll to the list of primer files, you could distribute it "inside" your setup executable and still be able to run it before any of the "normal" files in your project are installed.

TIP

Another way to access files at the start of the installation process is to distribute them "alongside" your installer. For instance, you could store the files "externally" on the same CD-ROM, and access them directly; or, you could download the files from your web site using a Download File HTTP action on the Startup action tab.

Primer files are only required when you need early access, and you want the files to be included in your setup executable.

NOTE |
 | Primer files must be deleted manually using actions - they are not removed automatically at the end of an installation.

See Also: Primer Files tab


Action Progress Dialog

The Action Progress dialog is displayed when most actions are performed during runtime. The Action Progress is displayed to give the installation a uniform look, and to let the user know what specific actions are being performed.

The visibility of the Action Progress dialog is controled by the built-in variable %ShowActionProgressDlg%.

See Also: Built-In Variables


Base Directories

When files are added to a Setup Factory project, Setup Factory tries to set a "best guess" value for the destination folder of each file. It does this by comparing the file's path to the base directory for the tab the files were added to.

The base directory is the path to a folder on your system that represents the application directory (%AppDir%) on the user's system. There is one base directory for the Archive tab, and another base directory for the CD-ROM tab. When you add files to your project, Setup Factory uses the appropriate base directory setting to determine where the files should be installed at run time.

When you add a file, any part of the file's source path that matches the base directory is essentially replaced by "%AppDir%" in the destination path for the file.

For example, if you add C:\Products\Foo\Data\settings.ini to your project, and the base directory is C:\Products\Foo, the file's destination path will automatically be set to %AppDir%\Data\settings.ini.

See Also: How the Base Directory is Converted to %AppDir%


Build Time

Build time refers to the final step of actually generating the setup executable file. This is where Setup Factory takes all the work you did at design time and converts it into the final product that your users will run.

See Also: Design Time, Run Time


Build-time Conditions

Build-time conditions let you conditionally include or exclude files from your setup executable.

Every file in a Setup Factory project can have a build-time condition attached to it. The build-time condition determines whether that file gets included when the setup executable is built.

A build-time condition is a conditional expression that resolves to either true or false. If the expression resolves to true, the file gets included in the installer. If it resolves to false, the file is excluded from the installer.

By using design-time constants as switches, you can set up build-time conditions to conditionally include or exclude files from different "builds" of your installer. This enables you to easily manage concurrent versions of an installer within a single Setup Factory project.

NOTE |
 | You can use design-time constants as switches (or "flags") by assigning different values to them before initiating the build process.

For example, you could use the same Setup Factory project to build installers for the commercial and evaluation versions of your software. Simply define a design-time constant to use as a switch-for the sake of discussion, let's name it #BUILD#-and use that constant in build-time conditions. Give the files that are only meant for your commercial release the condition #BUILD# = "full", and give the files that only belong to your demo the condition #BUILD# = "demo". This lets you control whether the files from the commercial or demo versions of your installer get included by assigning either "full" or "demo" to #BUILD#. Design-time constants are replaced at build time by the values currently assigned to them; when you assign "full" to #BUILD#, the condition for the commercial files will be true, because the expression "full" = "full" is true, and the condition for the demo files will be false, because the expression "full" = "demo" is false.

NOTE |
 | Only design-time constants can be used as flags in build-time conditions. You can't use variables in build-time conditions, because variables don't receive their values until run time.

See Also: Run-time Conditions


Calculating File Information Dialog

The Calculating File Information dialog is displayed at run time whenever Setup Factory needs to determine how much disk space the current installation will need. This is done before every Select Install Folder screen, and right before the files are installed.

The Calculating File Information dialog is hidden by default. To display it, simply set the built-in variable %ShowFileCalcProgressDlg% to TRUE.

Note: Normally this dialog isn't necessary; it's only needed when a large number of files are involved and calculating the size of the installation takes long enough to be noticeable. (The delay can be recognized as a pause before the Select Install Folder screen is displayed, where the Setup Factory interface is not visible.)

You should test the installation on a range of systems that is representative of the hardware that your users will be using. If you notice a long delay before the Select Install Folder screen, simply set %ShowFileCalcProgressDlg% to TRUE at the beginning of your installation, and the Calculation File Information dialog will be displayed during the delay.

See Also: Built-In Variables, Screen Index


CRC Values

CRC values are calculated using an algorithm known as the Cyclic Redundancy Check, or "CRC" for short. Basically, this involves generating a 32-bit number (or "CRC value") based on the contents of a file. If the contents of a file change, its CRC value changes as well. This allows the CRC number to be used as a "checksum" in order to identify whether or not the file has changed. It also allows you to distinguish between different versions of a file by comparing its CRC value to the CRC values of the originals.

A file doesn't have to change much for its CRC value to be different. In fact, if even just one bit in a file changes, the CRC value for that file will change as well. If all you did was change one letter in a readme.txt file between version 1 and version 2, the CRC value for that readme.txt file would be completely different.

CRC values can be calculated for any type of file.

(More info: The basic idea of the CRC algorithm is to treat all the bits in a file as one big binary number, and then divide that number by a standard value. The remainder from the division is the CRC value. You can think of this value as being like a fingerprint for each file. Unlike human fingerprints, however, it isn't impossible for two files to have the same CRC-32 value. Setup Factory uses an industry-standard CRC-32 algorithm which generates CRC values that are 32 bits in length. This means that one in every 4,294,967,296 files could have the same CRC "fingerprint." Although the chances of any two files having the same CRC value are incredibly small, the CRC value alone isn't enough to guarantee an accurate identification. If you need to be absolutely sure, check the CRC in addition to other information about the file, such as the size of the file in bytes and its location on the user's system.)


Design Time

Design time refers to the process of designing your setup using the Setup Factory design environment. Everything you do with Setup Factory, from the moment you start the program, to the point where you are ready to actually generate the executable setup file, is considered work done "at design time."

Design time is where you, the developer, make the choices that will determine what your setup will do, how it will do it, and what it will look like when it is done.

See Also: Build Time, Run Time


File Associations

File associations tell Windows what actions can be performed on different types of files, what programs should be used to carry out each of those actions, and the paths to where those programs can be found.

Each file association associates a specific file extension with a command to use a program to do something to that file. For example, a file association can tell Windows that when files ending with .doc are double-clicked, they should be opened with Microsoft Word.

The program that is associated with a file extension is known as the default viewer for that type of file. For instance, Notepad is the default viewer for .txt files after Windows is installed.

File associations are stored in the Registry under HKEY_CLASSES_ROOT.


Files, Folders and Paths

In order to be able to design your installer, it's important that you have a solid understanding of files, folders and paths.

Files

Information on computers is stored in files. A file is a collection of computer-readable data that is treated as a single entity by the computer's operating system. In other words, a file is a bunch of data that a computer can store as one unit.

Files vary in size and can contain all sorts of data, from text, images and sounds, to database records and the machine language code that programs are made of.

Each file is identified by its filename and path. The filename is the name that was given to the file when it was created or saved. The path is a string of text that describes where the file is stored.

Extensions

A file extension consists of a period (.) followed by one or more characters at the end

of a filename. Windows uses the file extension to determine what kind of information

is contained in a file. For example, in the filename myfile.txt, .txt is the file extension that identifies myfile.txt as a text file.

TIP |
 | When reading filenames out loud, the period in the extension is usually pronounced "dot." So myfile.txt would be pronounced "myfile dot text" or "myfile dot tee ex tee."

Folders

Windows uses a hierarchical file system. This means that storage space is organized into folders and sub-folders, forming what is often referred to as a "directory tree." The base of the directory structure is known as the root folder, or just the "root" for short. Within this root folder there can be files and sub-folders, and within those sub-folders there can be other files and sub-folders as well.

Each folder acts like a container for all the files and folders that are "in" it. All the files and sub-folders in a folder can be copied, moved or deleted at once by copying, moving or deleting the folder that contains them.

Much like hanging folders in a filing cabinet, folders make it easier to organize and locate your files. If the files on a computer were all kept in one place, it would be very difficult to find a particular file. Folders allow related files to be grouped together so it's easier to find them.

NOTE |
 | Folders are also often called directories. In Windows, the terms "folder" and "directory" both refer to the same thing.

Drives

A drive is a form of fixed, networked or removable media used as a storage device. A "fixed" drive is one that isn't removable - which is to say that the storage media is built right into the drive, and isn't made to be removable like floppy disks and CD-ROMs are. A "networked" drive is a one that isn't connected locally, but is instead accessed remotely via a network. A "removable" drive stores information on removable media such as magnetic or optical disks, cartridges and tapes.

The term "drive" can also refer to the drive letter, which is the letter assigned to the drive during the computer boot process. A single letter of the alphabet is assigned to each drive as it is detected at startup. The letters "A" and "B" are reserved for floppy drives, and the rest of the letters (from C to Z) are assigned in order to the various hard drives, CD-ROM drives, and any other drives attached to the system.

For example, if your system has a single hard drive and a CD-ROM drive, your C: drive is your hard drive, and your D: drive is your CD-ROM. If your hard drive is split into two logical drives or "partitions," then C: and D: would refer to those partitions, and your CD-ROM drive would be E:.

NOTE |
 | Drives are where files and folders are stored.

Root Folder

The root folder is the "base" or "main" folder on any drive. The root folder is where all of the other folders on a drive are located. When you double-click on the C: drive in My Computer, you're opening the root folder of the C: drive. All the folders on the C: drive are located in the "root" of C:.

The root folder is always named "\" in Windows. For example, the path to the root of the D: drive is:

D:\

Paths

A path is a string of text that describes where a file or folder is stored in a hierarchical directory structure. There are three kinds of paths you can use in Setup Factory: full paths, relative paths and UNC paths.

Full Paths

Full or "absolute" paths provide "complete" directions to locate a file, starting from the root folder of a given drive. A full path begins with the drive letter and includes the name of each folder that would need to be opened, in turn, in order to access the desired folder or file. The folder names are separated by backslash characters (\). Full paths have the following general format:

<drive letter>:\<folder name>\<folder name>\<filename>

For example:

  • The path to the root folder on the C: drive is:

    C:\

  • The path where Setup Factory 6.0 is installed on your system is probably:

    C:\Program Files\Setup Factory 6.0

  • The path to Notepad.exe on your system is probably something like:

    C:\Windows\Notepad.exe

Relative Paths

Relative paths provide "partial" directions to locate a file starting from another folder (often the current working directory). They look just like full paths, but they're missing the drive name and possibly some folder names too. The simplest relative paths consist of a single folder or filename. Relative paths have the following general format:

<folder name>\<folder name>\<filename>

For example:

  • The relative path to a Data folder in the current working directory would be:

    Data

  • The relative path to the Setup Factory 6.0 application from the Program Files folder would be:

    Setup Factory 6.0\SUF60Design.exe

  • The relative path to a readme file in a sub-folder named Docs would be:

    Docs\readme.txt

UNC paths

The Universal Naming Convention (UNC) is a standard method of describing the location of files and other resources shared on a network. In Windows, UNC paths begin with two backslashes (\\), followed by the server name, which is the name assigned to the computer where the shared resources are located. The server name is followed by another backslash (\) and the share name, which is simply the name that was given to the volume or storage device when it was shared. This is then followed by the path to the desired file or folder on that shared volume.

UNC paths have the following general format:

\\<server name>\<share name>\<folder name>\<filename>

For example:

  • The UNC path to the Setup Factory 6.0 application on a C: drive which is shared as "D2" on a computer named "R2" would be:
    \\R2\D2\Program Files\Setup Factory 6.0\SUF60Design.exe

  • The UNC path to a file named foo.txt in the temp folder of a drive which is shared as "MAIN" on a computer named "DOROTHY" would be:
    \\DOROTHY\MAIN\temp\foo.txt


How the Base Directory is Converted to %AppDir%

When files are added to a Setup Factory project, Setup Factory tries to set a "best guess" value for the destination folder of each file. It does this by comparing the file's path to the base directory for the tab the files were added to.

The base directory is the path on your system that corresponds to the path where your application will be installed. In other words, it's the local representative of %AppDir%. (%AppDir% is the built-in variable that gets set to the installation path when the user selects an install folder at run time.)

Setup Factory automatically picks a base directory for you the first time you add any files to your project. If you add a single file, Setup Factory chooses the folder that the file is located in as the base directory. If you add multiple files at the same time, Setup Factory chooses the first folder that all of the files have in common as the base directory.

Once a base directory is set, whenever a file is added to a Setup Factory project, any part of the source path that matches the base directory is replaced with "%AppDir%".

For instance, if the current project's base directory for the Archive tab was C:\Projects\Widget Designer and you added the following files to the Archive tab:

C:\Projects\Widget Designer\Widget Designer.exe

C:\Projects\Widget Designer\Data\Parts.dat

C:\Projects\Widget Designer\Docs\Widget Designer.html

...the destination paths for the files would be set to:

%AppDir%\Widget Designer.exe

%AppDir%\Data\Parts.dat

%AppDir%\Docs\Widget Designer.html

If you add a file that isn't located somewhere beneath the base directory-so the path to the base directory isn't found in the path to the source file-Setup Factory sets the file's destination path to just "%AppDir%".

NOTE |
 | The base directory is reset (i.e. cleared) whenever you remove all the files from a tab. In other words, the base directory for the Archive tab is reset when you remove all the files from the Archive tab, and the base directory for the CD-ROM tab is reset when you remove all the files from the CD-ROM tab. This means that if you remove all the files from one of the tabs, and then proceed to add files to it again, Setup Factory will pick a new base directory based on the files you just added.

TIP

You can also set the base directory manually. This can be helpful if you have two different directory structures that you want to install to the same place on the user's system.

For example, you might have two different versions of your software installed in two different directory structures on your system (a full version and a demo version, perhaps). If you wanted to install them both to the same place on the user's system, you could add the files from the first directory structure, change the path of the base directory to point to the second directory structure, and then add the files from the second directory structure to your project. (Once the files were added, you could assign them to packages to control which version is installed at run time.)

To set the base directory manually, select Project | Settings from the menu, and edit the appropriate path on the Directories tab of the Project Settings dialog.

See Also: Base Directories


Nested Shortcuts

A nested shortcut is simply a shortcut file that is located in a shortcut sub-folder - i.e., a shortcut file in a folder that is located or "nested" in another folder.

You can easily create nested shortcuts with Setup Factory 6.0 by using a Create Shortcut action. Simply include the nested folders in the path that you provide in the Folder field on the Action Properties dialog for the Create Shortcut action.

(In other words, just enter the full path to where you want the shortcut file to end up, and if any of the folders in the path don't exist, Setup Factory will automatically create them for you.)


Run Time

Run time refers to when the actual setup executable is run. This is where the interface you customized during design time is presented to the user, and the actual work of installing the software is performed.

See Also: Design Time, Build Time


Run-time Conditions

Run-time conditions let you control whether specific files get installed from your setup executable onto the user's system.

Every file in a Setup Factory project can have a run-time condition attached to it. The run-time condition determines whether that file gets installed when the setup executable is run.

A run-time condition is a conditional expression that resolves to either true or false. If the expression resolves to true, the file is installed. If it resolves to false, the file is not installed.

NOTE |
 | You can also control whether files are installed by assigning them to packages. Files belonging to a package are only installed if the user selects that package at run time. However, even when a package is selected, each file's run-time condition must still be satisfied in order for that file to be installed.

See Also: Build-time Conditions


Shortcuts

A shortcut is a very small file in the Windows operating system that points or "links" to a file or web site.

Each shortcut file contains information about where the file or web site that it "points" to is located. When a user double-clicks on a shortcut file, the file or web site that it points to is opened instead.

Shortcut files have a .lnk, .url or .pif extension that is hidden by the Windows operating system.

Items in the Favorites menu and the Start menu are all shortcuts. These shortcuts are usually organized into folders, known as shortcut folders. A shortcut folder is simply a folder in the Start menu that contains shortcut files.


The Registry

The Registry is a central database provided by the Windows operating system where system and software configuration details are stored. It's arranged into a hierarchical structure that is similar to the way folders and files are organized on a hard drive.

The Registry is organized into six main folders, called main keys. Each of these main keys can contain any number of sub-folders, called sub keys. Information in the Registry is stored inside the main keys and sub keys as values.

There are three different types of values that can be stored in the Registry: String, Binary, and DWORD. String values contain strings of characters, Binary values contain binary data, and each DWORD value contains a single 32-bit ("double word") value.

Each main key in the Registry contains a different kind of information.

The six main keys are:

HKEY_CLASSES_ROOT

-

HKEY_CLASSES_ROOT is used to store information on different aspects of shell integration, like file associations, OLE, DDE, and drag-and-drop operations.

This key is actually a link to HKEY_LOCAL_MACHINE\SOFTWARE\Classes. Storing information in HKEY_CLASSES_ROOT is the same as storing information in HKEY_LOCAL_MACHINE\SOFTWARE\Classes, and vice-versa.

HKEY_CURRENT_USER

-

Like HKEY_CLASSES_ROOT, this is actually a link to another key. In this case, it points to the key in HKEY_USERS that belongs to the user who is currently logged onto the system. This is where configuration information for the current user is stored.

HKEY_LOCAL_MACHINE

-

HKEY_LOCAL_MACHINE contains information about system hardware, peripherals, installed software, OLE and software configuration, and other Windows configuration details.

HKEY_USERS

-

This is where user-specific configuration information is stored. Individual sub keys hold settings for each user, and the default settings are kept in a sub key named .Default.

HKEY_CURRENT_CONFIG

-

HKEY_CURRENT_CONFIG stores information for plug-and-play devices and the various hardware configurations that have been defined.

HKEY_DYN_DATA

-

HKEY_DYN_DATA is used by Windows to store dynamic information that changes frequently during the normal operation of Windows. It's usually best to leave this key alone.

TIP |
 | You can read and write to the Registry by using the Read from Registry and Modify Registry actions.


Purchase Setup Factory

Command Reference

Purchase Setup Factory 6.0

Product specifications and pricing are subject to change without notice.

Benefits of Ordering

When you order Setup Factory you will receive:

  • Setup Factory software with the latest revisions and enhancements.

  • A license to distribute, royalty-free, the installations that you create with Setup Factory.

  • A professionally bound and printed manual.

  • Free email- and web-based technical support for as long as you need it.

  • User benefits such as terrific pricing on upgrades to new versions and special deals on related products.

  • The peace of mind of knowing your update technology was created by Indigo Rose Corporation. Our development tools are being used by thousands of developers all over the world and we have been producing Windows based development solutions since Windows 3.0 was just a baby! We have been around and will continue to develop and support our development tools.

Pricing

Current pricing information can be obtained from our web site at http://www.indigorose.com/ordering.html, by calling us directly, or by emailing sales@indigorose.com.

Setup Factory is licensed on a royalty-free, per-developer basis. Multiple-license discounts and site licenses are available. Purchase orders from qualified government, corporate, and educational institutions are terms Net 30 and subject to approval. Please contact our sales department for details.

Contact Information

You can contact our sales department with any questions that you may have. Our contact details are as follows:

Telephone:

(204) 946-0263

Fax:

(204) 942-3421

World Wide Web:

http://www.indigorose.com

E-Mail:

sales@indigorose.com


Technical Support

Indigo Rose Corporation offers a variety of technical support programs designed to match your specific needs. Both complimentary and fee-based support options are available. Please refer to the Developer Support Programs brochure included with your package for complete details on the available support programs.

Your connection to all of our support resources can be found at http://www.indigorose.com/support.

Before You Contact Our Support Department

Save yourself both time and money by referring to our supplementary resources before you contact our technical support department. Answers to just about any question can be found in these self-help resources. You'll be able to get the answers you need 24 hours a day, 7 days a week.

Product Documentation

The product documentation includes this Command Reference, the User's Guide, and any last-minute notes in a readme.txt file. Answers to most common support issues can be found in the product documentation.

Knowledge Base

A collection of informational articles and how-to tutorials. These articles cover both common and uncommon situations, including advanced technical issues. Many articles are written in response to consulting-type situations. You'll find really good information in the knowledge base.

Discussion Groups

Indigo Rose maintains a number of community message boards. These discussion groups are frequented by many developers, including our own technical support representatives. The discussion groups are a great source for ideas, solutions and peer support.

Limitations of Technical Support

Technical Support is limited to general product usage questions. Questions relating to external functionality such as operating systems, development environments, third-party products or various Windows technologies are not included. All services are provided subject to the current Support Terms and Conditions as listed at our web site.

Limitations include, but are not limited to:

  • Problems with your development tool such as Visual Basic, Delphi, Director, etc. Please consult your development tool's documentation for these issues.

  • Third-party technologies you are distributing (such as BDE or QuickTime).

  • Issues relating to distribution media such as CD-R burning.

  • A specific design issue that is unique to your distribution.

Contacting Technical Support

Before contacting us for support, please make sure that you have read this document and have prepared all of the requested information.

You can reach our Technical Support department in the following ways:

Web:

http://www.indigorose.com/support

Email:

support@indigorose.com

Fax:

(204) 942-3421


Command Line Options

Installer Options
Uninstaller Options
Design Environment (Build) Options

Installer Options

The following command line options are supported by the Setup Factory installer:

Language (/L)

The /L option forces the installer to use the messages associated with a specific language ID, instead of using the messages that correspond with the user's system locale settings. This allows you to test your installer in multiple languages without having to change your system language and reboot.

(More info: By default, the setup executable detects the language being used on the user's system, and uses the messages that were loaded from the corresponding language file at design time. If there were no messages defined for the user's language, the messages from the default language file are used. You can add different language files to your installer by using the Languages tab of the General Design dialog.)

The syntax for the /L option is:

/L:#

Replace # with the language ID for the language you want Setup Factory to "detect." The installer will configure itself as though that language was the current system language.

Example:

setup.exe /L:17
(forces the installer to "detect" Japanese as the system language)

TIP |
 | A complete list of language IDs can be found in the C:\Program Files\Setup Factory\Languages\langids.ini file.

Silent Mode (/S)

You can force the installer to run in silent mode by using the /S option. In silent mode, no screens, errors, or any other parts of the interface will be shown. This includes any messages displayed using the Show Message Box and Yes/No Message Box actions.

Example:

setup.exe /S

NOTE |
 | The built-in variable %SilentMode% is set to TRUE when the installer is running in silent mode.

Temp Path (/T)

Every setup executable requires some temporary space on the user's hard drive during the installation process. By default, Setup Factory uses the user's TEMP directory for extracting temporary files and other miscellaneous operations. You can force the setup executable to use an alternate directory by using the /T command line option.

The syntax for the /T option is:

/T:path

Replace "path" with the path to the folder you want the setup executable to use for its temporary files. (Be sure to put quotes around the entire argument if the path includes any spaces.) If the folder doesn't already exist on the user's system, it will be created automatically.

Example:

C:\Downloads\setup.exe "/T:C:\My Temp Dir"
(forces the installer to use "C:\My Temp Dir" for temporary files)

Wait for Return (/W)

Use the /W option to have the Setup Factory launcher wait for the setup executable to return before exiting. This is useful if you're running the installer from another process and you want that process to wait for Setup Factory to finish before proceeding.

(More info: To keep the setup executable compact, part of its code is transported in a compressed form. Whenever the user runs your installer, the setup executable automatically extracts this compressed code, runs it, and exits-essentially handing the installation process over to the uncompressed code. By using the /W option, you can have the launcher program "stick around" until the end of the installation process.)

Uninstaller Options

The following command line option is supported by the Setup Factory uninstaller:

Silent Mode (/S)

You can force the uninstaller to run in silent mode by using the /S option. In silent mode, no screens, errors, or any other parts of the interface will be shown. This includes any messages displayed using the Show Message Box and Yes/No Message Box actions.

Example:

iun600.exe "C:\Program Files\Foobar 2002\irunin.ini" /S

NOTE |
 | The built-in variable %SilentMode% is set to TRUE when the uninstaller is running in silent mode.

Design Environment (Build) Options

The following command line options are supported by the Setup Factory design environment:

Unattended Build (/B)

Performs an unattended build of a project. This allows you to build a setup executable "automatically" from a batch file.

The syntax for the /B option is:

/B:unattended-build INI file

Replace "unattended build INI file" with the path and filename of an INI file containing the unattended build settings you want Setup Factory to use. (Be sure to put quotes around the entire argument if the path or filename includes any spaces.)

Example:

SUF60Design.exe D:\foo.sf6 "/B:D:\release build.ini"

NOTE |
 | The project file name should always be passed as the first command line parameter.

The unattended-build INI file allows you to pass values into your project in the form of design-time constants. You can define as many design-time constants as you want in the INI file, with each constant on a separate line beneath the [Constants] section. For example:

   [Constants]
   #OUTPUTDIR#=C:\Output\Foobar 2002\Release
   #SETUPNAME#=foobar2002setup.exe
   #BUILD#=release

When you use the /B option, the specified project file is loaded into Setup Factory, the constants described in the specified unattended-build INI file are set, and the setup executable is generated-all without any interaction.

The SUF60Design.exe process returns an exit code of 1 if an error occurred during the unattended build, or 0 if the build was successful. You can use this return code to make your batch files respond to the success or failure of the Setup Factory build process.

TIP |
 | The unattended build option is usually used in conjunction with the Minimize (/M) option.

Minimize (/M)

Minimizes the Setup Factory design environment when used with the unattended build (/B) option.

Example:

SUF60Design.exe C:D:\xyz.sf6 /B:D:\autobuild.ini /M


templates

NOTE |
 | Foo

TIP |
 | Foo

SEE ALSO |
? | For more information on expressions, see Chapter 2: Key Concepts and Chapter 15: Expressions in the User's Guide.

search

delimiter

delimited list

semi-colon delimited list

double-semi-colon delimited list

zero-based

floating-point

decimal places

TRUE

FALSE

true

false

associated viewer

URL encoded

runtime support modules

Indigo Rose web site

enabled

visible

Portable Executable

negative file list

setup archive


Generate Serial Number dialog

Command Reference

Generate Serial Number

The Generate Serial Number dialog is opened from the Serial Number tab on the General Design dialog. The Generate Serial Number dialog contains the following fields:

Serial Numbers

Number of serial numbers to generate

The number of serial numbers to generate. This has a maximum of 32000.

Generate sequential Serial Numbers

If selected, sequential serial numbers will be generated starting with the one specified in the First serial number field.

First Serial Number

The first serial number in the sequence. The following rules apply to the first password:

  • Must consist only of alphanumeric characters and dashes ("A-Z", "a-z", "0-9", "-").

  • Cannot contain spaces.

  • Cannot start or end with a dash.

Generate random Serial Numbers

If selected, random serial numbers will be generated based on the mask entered in the Serial number mask field.

Serial Number mask

A mask of the serial numbers to generate. The following mask characters may be used:

Character | What will be generated
# | Random number
* | Uppercase letter ("A-Z")
@ | Lowercase letter ("a-z")
? | Random number or uppercase letter ("A-Z", "0-9")
- | A dash character
A literal character | The literal character will be displayed

Examples

Mask | Example of what could be generated
####-####-####-#### | 4754-8345-1970-4486
CDKEY-*****-??? | CDKEY-KWNGV-H39
@####@####@ | f7986j2658y
???-INDIGO-???-??? | LA5-INDIGO-8W0-9FM
*@@@@@ | Gpnenos
PW-1998-###### | PW-1998-348521


Language Module Messages dialog

Command Reference

Language Module Messages

The Language Module Messages dialog does not actually have this title at the top of the window but rather the name of the language and the full path to the language module.

The Language Module Messages dialog is accessed when you select an entry in the Languages supported in setup list on the Languages tab of the General Design dialog and press the properties button.

This is the default language

If checked, the current language module will be set as the default language.

Message List

This is a list of all of the messages in the currently selected language module.

To translate a message, click the Properties button. This will open the Edit Message Text dialog.

Edit Message Text Dialog

This dialog is used to actually translate a message to a different language.

Original Text

The original text that needs to be translated.

New Text

The new, translated text.

Category

The message's category. Choose from the existing default categories or create your own. This field is for informational and organizational purposes only so just use values that make sense to you.

ID String

The unique string that will identify the message. Do not change this value.


Localize Packages dialog

Command Reference

Localize Package Dialog

The Localize Package dialog is used to translate the name and description of a package. This is useful if you are creating a multilingual installation.

Language

The language that you want to create the translation for.

Name

The translated package name.

Description

The translated package description.


Screen Properties dialog

Screen Properties

The Screen Properties dialog is where you can configure the settings for the currently selected screen.

To access the Screen Properties dialog, select the screen that you want to configure on the Screens dialog, and then press the Properties button. (You can also use the Ctrl+P hotkey, or right-click and select Properties from the context menu.)

The Screen Properties dialog has four tabs:

Settings tab

The Settings tab is where you can configure general settings for the screen. This is where you can configure the options that are common to all screens, such as the general appearance of the screen's window, and various settings for the buttons that appear at the bottom of the screen.

The Settings tab is also where you can edit the screen condition that determines whether the screen is displayed at run time.

Custom tab

The Custom tab is where you can configure screen-specific settings. This can include anything from text instructions and field captions, to default values and custom variable names.

The options on the Custom tab depend on the type of screen that is being configured.

NOTE |
 | The Custom tab is where all the screen-specific options are located.

Before tab

The Before tab is where you can list the actions that will be performed before the screen is displayed. This occurs after the screen condition has been evaluated and the decision to display the screen has been made.

After tab

The After tab is where you can list the actions that will be performed after the screen is displayed. This typically occurs after the user presses the Next or Finish button on the screen.


Screens dialog - After tab

Command Reference

After

The After tab is for actions you want performed after the currently selected screen is displayed. These actions are performed after the user presses the Next button to advance to the next screen.

Please see the alphabetical list or the categorical list of actions for a complete list of all available actions.


Screens dialog - Before tab

Command Reference

Before

The Before tab is for actions you want performed before the currently selected screen is displayed. These actions are performed after the screen condition is evaluated, so if the screen condition isn't met, none of the actions on this tab will be performed. In other words, the actions on this tab are only performed if the screen is going to be displayed.

NOTE |
 | These actions will only be executed if the screen condition is evaluated to a true result.

Please see the alphabetical list or the categorical list of actions for a complete list of all available actions.


Help Button Actions dialog

Command Reference

Help Button Actions

The Help Button Actions dialog is for actions you want performed when the user presses the Help button on the currently selected screen.

Please see the alphabetical list or the categorical list of actions for a complete list of all available actions.


Screens dialog - Settings tab

Command Reference

Settings

The Settings tab is where you can set the common options for the current screen.

Screen Identification

Screen name:

This is the name that will be displayed in the list of screens on the Screens dialog (at design time).

Window Appearance

Window title:

This is the text that will be displayed in the Windows title bar for this specific screen.

Heading:

This is the heading text that will be displayed in bold at the top of your screen. If the screen has a top banner, the heading text will be displayed there. If the screen does not (as in a Welcome - Side Banner screen), the heading text will appear in a larger font near the top of the screen.

Sub heading:

If the screen has a top banner, the Sub Heading text will appear directly underneath the Heading text. If the screen does not have a top banner, this option is grayed out.

Image:

This is the image that will be displayed on the screen. If the screen has a top banner, the image will appear in the upper right corner of the top banner. Your image should be 111 X 63 Pixels in order to fit properly on the top banner. If the screen does not have a top banner, the image will take up the entire left third of the screen. Your image should be 165 x 310 Pixels in order to fit properly on the left side of the screen.

Screen Condition

A screen condition is simply a conditional expression that determines whether a screen will be hidden or displayed at run time. If the expression is blank, or evaluates to a true result, the screen will be shown. If the expression evaluates to a false result, the screen will not be shown.

You can type an expression directly into the Screen Condition field, or you can press the Build button to build the expression with the help of the Build Expression dialog.

Build

Opens the Build Expression dialog which provides a useful interface to help you build your conditional expression.

Buttons

Next:

This is the text that will be displayed on the Next button. The Next button causes the installer to advance to the next screen. In other words, it moves the installation one screen forward.

Enabled: This controls whether or not the Next button is enabled.

Visible: This controls whether or not the Next button is visible.

Back:

This is the text that will be displayed on the Back button. The Back button causes the installer to return to the previous screen. In other words, it moves the installation one screen back.

Enabled: This controls whether or not the Back button is enabled.

Visible: This controls whether or not the Back button is visible.

Cancel:

This is the text that will be displayed on the Cancel button. The Cancel button cancels the setup.

Enabled: This controls whether or not the Cancel button is enabled.

Visible: This controls whether or not the Cancel button is visible.

Help:

This is the text that will be displayed on the Help button. The Help button causes the actions on the Help Button Actions dialog to be performed.

Enabled: This controls whether or not the Help button is enabled.

Visible: This controls whether or not the Help button is visible.

Actions: This will open the Help Button Actions dialog, where you can define the actions that will be performed when the Help button is pressed.


Screens dialog - Abort - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Screen Text

Text:

This is where you can enter the text that will appear on the Abort screen.


Screens dialog - Check Boxes 12 - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Instructions

Text:

This is the text that will appear on the screen as instructions or information. It will appear just below the top banner and just above anything else on the screen.

Check Boxes

This is where you add/edit all of your check boxes. You can have a maximum of 12 check boxes and a minimum of 0. Use the buttons below the list box to Add, Remove, or change the order of your check boxes.

TIP

You can dynamically hide or disable check boxes at run time by setting the check box's variable to CONTROL_HIDE or CONTROL_DISABLE before the Check Boxes 12 screen is displayed.

You can also dynamically check or uncheck the check boxes at run time by setting the check box's variable to TRUE (checked) or FALSE (unchecked) before the Check Boxes 12 screen is displayed.

Check box item text:

This is the text that will appear directly to the right of the check box.

Visible

This check box controls whether or not the currently selected check box, in the Check Boxes list, will be visible.

Enabled

This check box controls whether or not the currently selected check box, in the Check Boxes list, will be enabled.

Default State:

This controls the default state of the selected check box. Select either Checked or Unchecked.

Store check box state in variable:

This is where you specify the variable that will store the selected check box's state.

This variable will be set to "TRUE" if the check box is checked, and "FALSE" if the check box is unchecked.

TIP |
 | You can dynamically hide or disable the check box at run time by setting this variable to CONTROL_HIDE or CONTROL_DISABLE before the Check Boxes 12 screen is displayed.

Layout

These two radio buttons control the layout of your check boxes. You can choose between Vertical and Horizontal.

Vertical

This will set your layout to vertical. In this mode, your check boxes will be placed vertically on your screen. This means that the left column will hold check boxes 1, 2, 3, 4, 5, 6 and the right column will hold check boxes 7, 8, 9, 10, 11, 12.

Horizontal

This will set your layout to horizontal. In this mode, your check boxes will be placed horizontally on your screen. This means that the left column will hold check boxes 1, 3, 5, 7, 9, 11 and the right column will hold check boxes 2, 4, 6, 8, 10, 12.

Note: The Horizontal feature will only place your check boxes horizontally if you have more than six of them. Otherwise, they will still be displayed vertically (and will expand to accomodate more text).


Screens dialog - Finished - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Screen Text

Text:

This is where you can enter the text that will appear on the Finished Screen. Use this text to explain any additional information to the user, or to inform them that the installation has completed successfully.


Screens dialog - License Agreement - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Screen Text

Text:

This is where you can type in, or paste in, your license agreement.

License Agreement Options

Agree text:

This is the text that will appear to the right of the "I Agree" radio button.

Disagree test:

This is the text that will appear to the right of the "I Disagree" radio button.

Default:

This sets which radio button ("I Agree" or "I Disagree") will be selected by default.


Screens dialog - List Box - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Instructions

Text:

This is the text that will appear on the screen as instructions or information. It will appear just below the top banner and just above anything else on the screen.

List Box

This is where you add/edit your list box items. There is no practical limit to the number of list box items that you can have. Use the buttons below the list box to Add, Remove, or change the order of your list box items.

Description

This is the text that will appear as your list box item.

Group Options

Enable list box

If this checkbox is checked, the list box will be enabled, allowing users to select items in the list box. If this checkbox is unchecked, the list box will be disabled, and the user will be unable to select any items in the list.

Sort list box items

If checked, the items in the list box will be sorted alphabetically at runtime.

Store text of selected item(s) in variable:

This variable will hold the description text of the selected list box entry. If Allow multiple selections is enabled, and the user selects more than one list box item, this variable will hold the description text for all selected items, separated by the supplied Delimiter.

Store index(s) of selected item(s) in variable:

This variable will hold the zero-based index of the selected list box item. If Allow multiple selections is enabled, and the user selects more then one item, this variable will hold the zero-based indexes for all selected items, separated by the supplied Delimiter.

Default selected item:

This determines which list box item (if any) will be selected by default. Use the list box item's description text in order to set the default selected item.

Allow multiple selections

If checked this will allow the user to select more then one list box item by holding the Ctrl or Shift key.

Delimiter:

The delimiter that will separate multiple list box selections in the delimited list that is stored in the variable when Allow multiple selections is checked.

Additional list box items (semi-colon delimited list):

Additional list box items in the form of a semi-colon delimited list. By using a variable in this field, you can dynamically create the list box items at run time.


Screens dialog - Edit Boxes - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Instructions

Text:

This is the text that will appear on the screen as instructions or information. It will appear just below the top banner and just above anything else on the screen.

Edit Fields

This is where you add/edit all of your edit fields. You can have a maximum of 4 entries and a minimum of 0. Use the buttons bellow the list box to Add, Remove, or change the order of your edit fields.

Caption above edit field:

This is the text that will appear directly above the currently selected edit field.

Default text in edit field:

This is the text that will appear in the selected edit field by default.

Store text in variable:

This is the variable that will hold the text from the selected edit field. In other words, whatever the user enters in that edit field will be stored in this variable.

Minimum:

This is the minimum number of characters that need to be typed in the selected edit field.

Maximum:

This is the maximum number of characters that can be typed in the selected edit field.

Browse button style:

This option allows you to include a Browse button next to the edit box. Choose from "NONE "File" or "Directory".

NONE | - | Don't include a Browse button.
File | - | Causes the browse button to open a Browse for File dialog. The result will be inserted into the edit box.
Directory | - | Causes the browse button to open a Browse for Directory dialog. The result will be inserted into the edit box.

Visible

This check box controls whether or not the currently selected edit field will be visible.

Enabled

This check box controls whether or not the currently selected edit field will be enabled or not.

Data validation type:

This controls the data validation that Setup Factory will perform on the text in the currently selected edit field. Choose from:

Alphanumeric

This will allow any character to be entered into the currently selected edit field.

Numeric

If selected, only numeric characters will be allow in the selected edit field.


Screens dialog - Radio Buttons 12 - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Instructions

Text:

This is the text that will appear on the screen as instructions or information. It will appear just below the Heading Banner and just above anything else on the screen.

Radio Buttons

This is where you add/edit all of your radio buttons. You can have a maximum of 12 entries and a minimum of 0. Use the buttons bellow the list box to Add, Remove, or change the order of your radio buttons.

Radio button value:

This is the text that will be stored in the selected radio button's variable (i.e. the variable in the Store selected button's value in variable field).

Radio button text:

This is the text that will appear directly to the right of the currently selected radio button.

Visible

This check box controls whether or not the currently selected radio button will be visible.

Enabled

This check box controls whether or not the currently selected radio button will be enabled.

Group Options

Store selected button's value in variable:

This variable will hold the Radio button value of the radio button that the user selects.

Store selected button's index in variable:

This variable will hold the zero-based index of the radio button that the user selects.

Default

Default selected radio button:

This sets which radio button (if any) will be selected by default. To set the default radio button, enter the text that you entered in the Radio button value field for the radio button that you want to have selected by default.

Layout

These two radio buttons control the layout of your radio buttons. You can choose between Vertical and Horizontal.

Vertical

This will set your layout to vertical. In this mode, your radio buttons will be placed vertically on your screen. This means that the left column will hold radio buttons 1, 2, 3, 4, 5, 6 and the right column will hold radio buttons 7, 8, 9, 10, 11, 12.

Horizontal

This will set your layout to horizontal. In this mode, your radio buttons will be placed horizontally on your screen. This means that the left column will hold radio buttons 1, 3, 5, 7, 9, 11 and the right column will hold radio buttons 2, 4, 6, 8, 10, 12.

Note: The Horizontal feature will only place your radio buttons horizontally if you have more than six buttons in order to accomodate more text.


Screens dialog - Ready to Install - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Screen Text

Text:

This is where you type the text that will appear on the Ready to Install screen. Use this text to explain any additional information to the user, or summarize the installation choices that they have made.


Screens dialog - Reboot System - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

The Reboot System screen is simply a Check Boxes 12 screen that sets the built-in variable %DoReboot% to TRUE or FALSE.

Setting %DoReboot% to TRUE will cause a reboot to occur, and settings it to FALSE will stop a reboot from occurring.

Please see the Custom tab for the Check Boxes 12 screen for information regarding your options.

Note: Changing the variable from %DoReboot% will prevent the Reboot System screen from functioning correctly.


Screens dialog - Scrollable Text - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Screen Text

Text:

This is where you can enter the text that will appear on the Scrollable Text screen. Use this text to explain any additional information to the user. The scrollable text will display as a white text box with black text and a vertical scrollbar.


Screens dialog - Select Drive - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Instructions

Text:

This is the text that will appear on the screen as instructions or information. It will appear just below the top banner and just above anything else on the screen.

Drive

Prompt above the drive field:

This is the text that will appear directly above the drive field.

Enabled

If selected, the drive field will be enabled.

Default drive:

This is the drive that will appear in the drive field by default.

Store the full path to the drive in variable:

This is the variable that will store the drive information that the user selects.

Display Drive Types

This is where you select what types of drives you wish to display.

Fixed drives (hard drives)

If selected, fixed drives will be displayed.

Network drives

If selected, network drives will be displayed.

Removable drives (floppy drives, Zip drives, etc.)

If selected, removable drives will be displayed.

CD-ROM drives

If selected, CD-ROM drives will be displayed.

Display Drive Information

Show free space on fixed and network drives

If selected, the free space on the fixed and network drives will be displayed.

Amount of free space on drive text:

This is the text that will be displayed directly to the left of the free space calculation. Use this text to describe what the numbers mean to the user.


Screens dialog - Select Install Folder - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Instructions

Text:

This is the text that will appear on the screen as instructions or information. It will appear just below the top banner and just above anything else on the screen.

Install Folder

Install folder prompt

This is the text that will appear directly above the Install Folder field.

Default install folder

This will be the default text that will appear in the Install Folder field. In general this should be: "%ProgramFiles%\%ProductName%"

Install folder field is enabled

This checkbox controls whether or not the Install Folder field is enabled.

Use Sticky folder name

When checked this folder will append the value in the Sticky folder name field to any install folder that the user selects.

Sticky folder name:

This field is only available if the Use sticky folder name checkbox is checked. It is the name of a folder that will always be appended to the directory that the user browses for as they are browsing. This will ensure that your program is always installed into a folder with a specific name.

Information Text

Information text can be used to tell your users how much room they have available on their had drive and how much space your installation requires.

If either of these fields is empty the corresponding space calculation will not be displayed.

Space available text:

This is the text that will be displayed to the left of the amount of free space the user has on the current drive. At run time, Setup Factory will automatically calculate the amount of free space on the user's system and append it to the text you enter here.

Usually this should be something like "Space available on selected drive:"

Space requirement text:

This is the text that will be displayed to the left of the amount of space that the current installation configuration requires. At run time, Setup Factory will automatically calculate the amount of space the installation requires and append it to the text you enter here.

Usually this should be something like "Space required on drive:"

Variable

Store selected install folder in variable

This is the variable that will store the Install Folder once the user leaves the Select Install Folder screen. If you only have one Select Install Folder screen, this value should be set to "%AppDir%".

Browse Button

The Browse button gives the user an easy way to change the default Install Folder.

Button Text:

The text that should appear on the Browse button.

Enabled

If selected, the Browse button will be enabled.

Visible

If selected, the Browse button will be visible.


Screens dialog - Select Install Type - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Install Types

This is where you add/edit all of your install types. You can have a maximum of 4 entries and a minimum of 0. Use the buttons bellow the List Box to Add, Remove, or change the order of your install types.

Name:

This field controls the name of the currently selected install type. The name will appear directly above the description at run time.

The install type name will also be stored in the variable you enter in the Store selected install type name in variable field.

Descriptions:

This field controls the description of the currently selected install type. The description will appear directly below the install type name at run time.

Set packages to state:

This is where you assign specific packages to the currently selected install type. Any packages that are selected will be installed if the currently selected install type is chosen by the user at runtime.

For example if you were going to assign packages to a "Complete" install type you would check all of the packages. This means that when the "Complete" install type is selected by the user, all of the packages will be installed.

Group Options

Store selected install type name in variable:

This variable will hold the name of the install type that the user selects at run time.

Store selected install type index in variable:

This variable will hold the zero-based index of the install type that the user selects at run time.

Default install Type:

This field controls which install type is selected by default. Enter the name of the install type that you want selected by default.


Screens dialog - Select Packages - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Instructions

Text:

This text will appear on the screen as instructions or information. It will appear just below the top banner and just above anything else on the screen.

Packages

This section allows you to specify which packages will be available on the Select Packages screen.

All available Packages

This list box displays all of the available packages in your project. You can create packages by using the Packages dialog.

Packages available on this screen

This list box controls which packages will be available to the user when they encounter this Select Packages screen. The order in which packages are displayed in the Packages available on this screen list box is the order in which they will be displayed to the user. If you would like to change the order, use the Up or Down buttons to do so.

To display a package on this Select Packages screen, simply select the package in the All available packages list box and press the ">" button to add the package to the Packages available on this screen list box.


Screens dialog - Select Shortcut Folder - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Instructions

Text:

The text that will appear on the screen as instructions or information. It will appear just below the top banner and just above anything else on the screen.

Shortcut Folder

Prompt above the shortcut folder field:

This is the text that will be displayed directly above the Shortcut Folder field.

Default shortcut folder:

This is the default text that will appear in the Shortcut Folder field.

Enabled

If selected, the Shortcut Folder field will be enabled.

NT All Users

If selected, the shortcut folder will be created in the All Users profile of the Start menu on Windows NT/2000/XP. If not checked, the shortcut folder will be created in the per user profile of the Start menu on Windows NT/2000/XP. This also determines which existing folders are available to the user in the shortcut folder selection box on NT/2000/XP.

This option has no effect for users running your installer on Windows 95, 98 or ME.

Variables

Store the full path to the shortcut in variable:

This variable will store the full path to the shortcut.

Store just the folder name in variable:

This variable will only store the name of the folder that the shortcut will be created in.


Screens dialog - Static Text - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Screen Text

Text:

This is where you can enter the text that will appear on the Static Text Screen. The text will be displayed directly on the screen with no background color or border.


Screens dialog - User Information - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

The User Information screen is simply an Edit Boxes screen that has been specifically designed to retrieve the user's name and company name.

The User Information screen stores the user's name in %UserName% and the user's company name in %UserCompany%.

Please see the Custom tab for the Edit Boxes screen for information on the available options.


Screens dialog - Verify Serial Number - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Instructions

Text:

The text that will appear on the screen as instructions or information. It will appear just below the top banner and just above anything else on the screen.

Serial Number

Prompt above serial number entry field:

The is the text that will appear directly above the Serial Number field.

Store the serial number in variable:

This variable will store the last serial number that the user enters in the Serial Number field.

This allows you to write the user's serial number out to the Registry or use it later on in the installation process.

Show this message if validation fails:

If the user enters an incorrect serial number this message will be displayed.

Usually this should say something like: "You have entered an invalid serial number. Please try again."

Serial number must be in list:

Choose the list of valid serial numbers for this screen. The serial number that the user enters will only be considered valid if it is found in this list.

You can create and edit your serial number lists by using the Serial Number tab of the General design dialog.

Maximum number of attempts:

The number of times that the user will be allowed to enter an invalid serial number in the Serial Number field before the install will abort. For example, if you enter "3" in this field, a user entering an incorrect password will only be shown the Show this message if validation fails message twice; on the third failed attempt, the installer will abort.


Screens dialog - Welcome Screen - Side Banner - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Screen Text

Text:

This is where you can enter the text that will appear on the Welcome screen. Use this text to welcome the user to your setup, or to provide them with information that is necessary to your installation. The text will appear on the right two-thirds of the Welcome screen on a white background.


Screens dialog - Welcome Screen - Top Banner - Custom tab

Command Reference

Custom

This Custom tab is where you can set the following screen-specific options:

Screen Text

Text:

This is where you can enter the text that will appear on the Welcome screen. Use this text to welcome the user to your setup, or to provide them with information that is necessary to your installation. The text will appear just below the top banner with no background color.